Например, если вы пишете модель автомобиля, код может выглядеть так:
class Car(models.Model):
make = models.CharField(max_length=20)
model = models.Charfield(max_length=20)
convertible = models.BooleanField()
convertible_choices = (('ht', 'Hard top'), ('st', 'Soft top'))
convertible_top = None
def save(self):
if self.convertible:
self.convertible_top = models.CharField(max_length=8, choices=convertible_choices)
super().save()
Я не уверен на 100%, что приведенный выше код идеально работает, но, надеюсь, его иллюстративные цели ясны; Если установлен флажок convertible
, поле для convertible_top
становится «активным» и предлагает поле ввода, в котором можно сделать выбор, например, выбрать один из вариантов, ввести ввод и т. Д. c.
Можно ли это сделать в Django или нужно просто добавить blank=True
в аргументы поля и вводить данные только в том случае, если они требуются?