Генерация фэйковых данных в базу данных Django
Подскажите пожалуйста, как я могу выбрать рандомное значение из choices с помощью рандома?
truck_trailer=random.choice(Trailer.TRAILER_TYPES.choices),
truck_status=random.choice(Truck.TRUCK_STATUS.choices),
Выдает что trailer_details=random.choice(Trailer.TRAILER_TYPES.choices), TypeError: 'list' object is not callable.
class Trailer(models.Model):
class TRAILER_TYPES(models.TextChoices):
REFRIGERATOR = "Refrigerator", "Refrigerator"
CURTAIN = "Curtain Trailer", "Curtain Trailer"
MEGA = "Mega Trailer", "Mega Trailer"
BOX = "Box Trailer", "Box Trailer"
CONTAINER = "Container Trailer", "Container Trailer"
TANKER = "Tanker", "Tanker"
trailer = models.CharField(choices=TRAILER_TYPES.choices, max_length=100, blank=False, null=True)
def __str__(self):
return self.trailer
class Meta:
verbose_name = _("Trailer Type")
verbose_name_plural = _("Trailer Types")
class Truck(models.Model):
class TRUCK_STATUS(models.TextChoices):
ACTUAL = "Actual", "Actual"
BOOKED = "Booked", "Booked"
TRANSIT = "Transit", "Transit"
REJECTED = "Rejected", "Rejected"
carrier_name = models.CharField(max_length=255, blank=False, null=True)
vehicle_name = models.CharField(max_length=50, blank=False, null=True)
truck_registration = CountryField(blank_label="(select country)", blank=False)
truck_plates = models.CharField(max_length=50, blank=False, null=True)
trailer_registration = CountryField(blank_label="(select country)", blank=False)
trailer_plates = models.CharField(max_length=50, blank=False, null=True)
truck_trailer = models.ForeignKey(
to="carrier.Trailer", related_name="truck_trailer", on_delete=models.CASCADE, blank=False, null=True
)
truck_status = models.CharField(
choices=TRUCK_STATUS.choices, default=TRUCK_STATUS.ACTUAL, blank=False, max_length=15
)
def __str__(self):
return f"{self.vehicle_name} {self.truck_plates} {self.trailer_plates}"
@classmethod
def generate_instances(cls, count: int) -> None:
fake = Faker()
for _ in range(count):
cls.objects.create(
carrier_name=fake.company(),
vehicle_name=fake.bothify(text="??-####", letters="ABCDE"),
truck_registration=fake.country(),
truck_plates=fake.license_plate(),
trailer_registration=fake.country(),
trailer_plates=fake.license_plate(),
truck_trailer=random.choice(Trailer.TRAILER_TYPES.choices),
truck_status=random.choice(Truck.TRUCK_STATUS.choices),
)
class Meta:
verbose_name = _("Trucks")
verbose_name_plural = _("Trucks")