1
我有如下形式:我的窗體的is_valid方法返回false
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
是空的,而form.is_bound是False
。
def duty_list_cook(request):
if request.method == 'POST':
c = Cook.objects.all()[0]
form = CookDuty(cook=c)
if form.is_valid():
print(form.cleaned_data)
return render(request, 'employee/cook_duty.html', {'form':form})
else:
c = Cook.objects.all()[0]
form = CookDuty(cook=c)
return render (request, 'employee/cook_duty.html', {'form':form})
現在它被綁定,但它仍然無效。當我打印錯誤,我得到這個:
- duty
- 選擇一個有效的選擇。 ['披薩']不是可用選擇之一。
– user63835它就像一個複選框。如何可以選擇無效? @Alasdair – user63835
這是一個單獨的問題。我認爲問題在於您的小部件與該字段不匹配。看到我更新的答案。 – Alasdair