Я создаю приложение, в котором пользователи могут устанавливать объекты и соответствующие данные, которые они хотят записать. Позвольте привести пример:
class vehicle_type(models.Model):
name = models.CharField(max_length=20, unique=True)
int1_name = models.CharField(max_length=20, blank=True, null=True)
int1_default = models.IntegerField(blank=True, null=True)
int2_name = models.CharField(max_length=20, blank=True, null=True)
int2_default = models.IntegerField(blank=True, null=True)
float1_name = models.CharField(max_length=20, blank=True, null=True)
float1_default = models.FloatField(blank=True, null=True)
class vehicle(models.Model):
registration = models.CharField(max_length=20)
vehicle_type = models.ForeignKey(vehicle_type)
int1_val = models.IntegerField(blank=True, null=True)
int2_val = models.IntegerField(blank=True, null=True)
float1_val = models.FloatField(blank=True, null=True)
Где данные будут примерно такими, чтобы описать транспортные средства:
# pseudo code
vehicle_type('Car','Seats',4,'Doors',4,'',)
vehicle_type('Van','Seats',2,'',,'Load',3.2)
и тогда данные об автомобилях будут:
vehicle('ABC 123',1,2,2,) #sports car
vehicle('DEF 456',1,6,,) #SUV
vehicle('GHI 789',2,,,1.2) #light van
vehicle('JKL 246',2,4,3,3.6) #heavy van
Мой вопрос: как я могу убедиться, что vehicleForm
не отображает поля, НЕ требуемые для vehicle_type
? Я знаю, что могу передать экземпляр vehicle_type
в vehicleForm
шаблон и отображать элементы vehicleForm
только если они объявлены в vehicle_type
, но это кажется ненужным и перемещает логику в шаблон. (Надеюсь, все это имеет смысл)