首页 > 解决方案 > 在 Django Select 中限制外键选项

问题描述

我有一个供应商模型和另一个产品模型。每个产品都必须有一个与之关联的供应商实例。稍后,在形式模型的单独模型表单中,用户必须选择供应商,然后选择产品。我希望看到的是产品选择选项过滤到供应商 = 用户选择的供应商的产品。我没有找到太多关于如何处理这个用例的信息......有人能指出我正确的方向吗?这需要使用 JS 还是我可以直接在表单中设置它?或者也许将查询集从视图传递到该字段?任何关于这方面的资源都会有所帮助。

模型.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)
    

标签: pythondjango

解决方案


创建一个单独的 URL,它将根据供应商返回产品。选择供应商后进行ajax调用,在产品选择选项中加载响应。


推荐阅读