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