我正在尝试编写一个用于登记车牌的程序。然而,我们有三种类型的盘子,我为这三种创建了一个选择字段。我想做的是,我需要创建一个OneToOne字段,它的给定模型是基于选择字段的数据的,例如,如果用户选择1,我需要将OneToOne字段连接到CarPlate,如果2 OneToOne域连接到MotorPlate,以此类推…
VEHICLE_CHOICES = (
("1", "سواری ملی"),
("2", "سواری منظقه ازاد انزلی"),
("3", "موتور سیکلت"),)
class Vehicle(models.Model):
vehicle_type = models.CharField(
max_length=3,
choices=VEHICLE_CHOICES,
blank=False
)
# below is an example of what i want to do
if vehicle_type == 1 :
plate_car = models.OneToOneField(CarPlate, on_delete=models.CASCADE, related_name="savari", blank=True)
elif vehicle_type == 2:
plate_anzali = models.OneToOneField(AnzaliPlate, on_delete=models.CASCADE, related_name="mantaqe", blank=True)
else:
plate_motor = models.OneToOneField(MotorPlate, on_delete=models.CASCADE, related_name="motor", blank=True)
上面的代码有效,但它没有给我正确的答案。
显然,这些类型的设置在模型中是不允许的,但你可以为它们中的每一个编写一个全局字段,然后在项目的前端部分,你只能为所选的选择字段获得你想要的字段