Фильтрация в Django, которая зависит от первого поля

>Suppose I have 3 fields of a Car Shop. those are  Condition, Brand, Model .


  class Car(models.Model):

ConditionType=(
    ('1','New'),('2','Used'),('3','Reconditon')
          )

BrandType=(
    ('Toyota','Toyota'),('Honda','Honda'),('Mitsubishi','Mitsubishi'), 
    ('Nissan','Nissan'),('Hyindai','Hyindai'))

>now model will depends on Brand user select . if user select Toyota as brand then >available model for toyota are (Axio,Premio ,Allion etc) ,for Honda carmodels are (civic >,vezel,Grace) 

Condition=models.CharField(max_length=120,choices=ConditionType,default='New')
Brand=models.CharField(max_length=120,choices=BrandType,default=None)
Condition=models.CharField(max_length=120,choices=ConditionType,default='New')
CarModel=models.CharField(max_length=120,choices=ModelType,default=None)

Теперь как я могу сделать так, чтобы модель автомобиля зависела от марки. Допустим, если пользователь выбирает марку - Toyota >то он может выбрать только модель автомобиля Toyota, если пользователь выбирает Honda, то он может выбрать >модель автомобиля Honda. То есть как я могу сделать выбор модели зависимым от бренда? Если бренд не выбран пользователь не сможет выбрать модель автомобиля .**

Если я правильно понимаю, вам нужно 3 поля выбора Поэтому вы должны создать модель Contain ConditionTypeCHOICES и BrandTypeCHOICES и одно поле forigionkey для вашей модели автомобиля (позже создайте выбор)

Заметка : как создать модель поля выбора
https://stackoverflow.com/a/32657683/15864993

после этого вам нужно создать другую модель для поля forigion вашей модели автомобиля (содержит поле BrandTypeCHOICES и поле символов)

Теперь вы можете мигрировать и, зайдя в админ-панель, создать свои модели автомобилей и другие

Если вам нравится создавать форму, вы можете создать форму модели и фильтровать ваш выбор в форме Для вашей модели автомобиля показывать только модели автомобилей по марке

Примечание: вот пример того, как фильтровать выбор моделей автомобилей по марке https://stackoverflow.com/a/21802408/15864993

Вернуться на верх