我的表单的is\u valid方法返回fals

2024-05-16 10:57:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张表格如下:

class CookDuty(forms.Form ):
    # cook = None
    def __init__(self, *args, **kwargs):
        cook = kwargs.pop('cook')
        super(CookDuty, self).__init__(*args, **kwargs)
        self.fields['duty'].choices = foods_for_cook(cook)
    duty = forms.ChoiceField(widget=forms.CheckboxSelectMultiple, required=False)

我在下面的视图中使用了它,但是form.is_valid返回false!我已经检查了form.errors,它是空的,form.data是空的,并且表单是绑定的是False。在

^{pr2}$

Tags: selfformnonefalseinitdefargsforms
1条回答
网友
1楼 · 发布于 2024-05-16 10:57:25

当它是一个post请求时,您需要将post数据传递到表单。在

if request.method == 'POST':
    c = Cook.objects.all()[0]
    form = CookDuty(cook=c, data=request.POST)

没有post数据,表单是未绑定的,因此总是无效的。在

有关详细信息,请参阅bound and unbound forms上的文档。在

第二个问题是ChoiceField字段(用于选择单个选项)与CheckboxSelectMultiple小部件(用于选择多个选项)不兼容。如果要选择多个选项,则需要使用^{},而不是ChoiceField。在

^{pr2}$

相关问题 更多 >