Python Django表单-保存选项不在下拉列表中

Python Django表单-保存选项不在下拉列表中,python,django,forms,django-crispy-forms,Python,Django,Forms,Django Crispy Forms,我有一张Django表格的相互依存下拉列表。我将第二个下拉列表留空,因为我使用jQuery填充选项 forms.py self.fields['product'].queryset = Product.objects.none() 流量: 在第一个下拉列表中,我选择产品类型 jQuery用产品选项填充第二个下拉列表 我从第二个下拉列表中选择一个产品 拯救 当我保存表单时,会出现一个错误,因为当表单最初加载时,所选选项在下拉列表中不可用 如何在此下拉列表中禁用表单验证,以便保存表单加载时不可用的

我有一张Django表格的相互依存下拉列表。我将第二个下拉列表留空,因为我使用jQuery填充选项

forms.py

self.fields['product'].queryset = Product.objects.none()
流量:

  • 在第一个下拉列表中,我选择产品类型
  • jQuery用产品选项填充第二个下拉列表
  • 我从第二个下拉列表中选择一个产品
  • 拯救
  • 当我保存表单时,会出现一个错误,因为当表单最初加载时,所选选项在下拉列表中不可用

    如何在此下拉列表中禁用表单验证,以便保存表单加载时不可用的选项

    根据要求,forms.py

    class OrderLineForm(forms.ModelForm):
    
        def __init__(self, *args, **kwargs):
            super(OrderLineForm, self).__init__(*args, **kwargs)
            self.helper = FormHelper(self)
            self.helper.form_tag = False
            self.helper.form_show_labels = False
            self.helper.form_show_errors = True
            self.helper.error_text_inline = False
            self.fields['product'].queryset = self.fields['product'].queryset.filter(product_type_id=self.instance.product_type_id)
            self.helper.layout = Layout(removed - not relevant)
        class Meta:
            model = OrderLine
            fields = "__all__" 
    

    第二个下拉列表的选项在js中?涉及到ajax吗?我有点不清楚你到底在做什么。我根据所选的产品类型(更改时)获得产品选项,这是因为我有1000多个选项-这很好。如果我删除self.fields['product'].queryset=product.objects.none(),表单保存得很好。您的问题仍然不清楚:
    products
    是第一个还是第二个?第二个是如何填充的?第一个下拉列表是产品类型,第二个下拉列表是产品。当我选择产品类型时,产品下拉列表通过JSON填充。快速修复方法是在forms.py中进行编辑,您可以将字段要求设置为false,这将使验证不检查字段,例如
    field\u foo=forms.multipleechoicefield(选项=排序(选项),必需=false)