Ограничение параметров внешнего ключа в Django Select

#python #django

#python #django

Вопрос:

У меня есть модель для поставщика и другая модель для продукта. С каждым продуктом должен быть связан экземпляр поставщика. Позже, в отдельной форме модели для модели Proforma, пользователь должен выбрать поставщика, а затем Продукт. Я бы хотел, чтобы параметры выбора продукта фильтровались до продуктов, в которых Поставщик = поставщик, выбранный пользователем. Я не нахожу много информации о том, как справиться с этим вариантом использования … может кто-нибудь указать мне правильное направление? Потребует ли это использования JS или я могу что-то сделать, чтобы установить это в форме напрямую? Или, может быть, передать набор запросов из представления в это поле? Что-нибудь, даже какой-нибудь ресурс по этому вопросу, было бы полезно.

models.py

 class Supplier(models.Model):
    supplierName = models.CharField(max_length=100)


class Product(models.Model):
    code = models.CharField(max_length=100)
    supplier = models.ForeignKey(Supplier, null=False, blank=False)

class Proforma(models.Model): 
    ...
    supplier = models.ForeignKey(Supplier, null=False, blank=False, on_delete=models.CASCADE)
    code = models.ForeignKey(Product, null=True, blank=True, on_delete=models.CASCADE)
    
  

Ответ №1:

Создайте отдельный URL-адрес, который будет возвращать продукт на основе поставщика. Выполните вызов ajax после выбора поставщика, загрузите ответ в опции выбора продукта.