选择有效的选择 ModelChoiceField

Jul*_*an 0 python django django-models django-forms

每当我运行 form.is_valid() 时,我都会收到错误:

选择一个有效的选择。该选择不是可用的选择之一。

我认为这是我所做的:

timeframes = HostTimeFrame.objects.all()
if request.method == 'POST':
    form = SelectDatesForm(request.POST, timeframes=timeframes)
    if form.is_valid():
        pass
else:
    form = SelectDatesForm(timeframes=timeframes)
Run Code Online (Sandbox Code Playgroud)

我的表格是这样做的:

 class SelectDatesForm(forms.Form):
    timeframes = forms.ModelChoiceField(queryset=HostTimeFrame.objects.none(), widget=forms.CheckboxSelectMultiple,
                                        empty_label=None)
    def __init__(self, *args, **kwargs):
        qs = kwargs.pop('timeframes')
        super(SelectDatesForm, self).__init__(*args, **kwargs)
        self.fields['timeframes'].queryset = qs.order_by('start')
Run Code Online (Sandbox Code Playgroud)

我花了几个小时试图找到这个实际验证是在哪里完成的,我找到了它,在这里创建了一个错误。

Mes*_*ahi 5

根据文档,ModelChoiceField 其默认小部件是Select doc

如果您想选择多个值,则必须使用ModelMultipleChoiceField , 如下所示:

timeframes = forms.ModelMultipleChoiceField(queryset=HostTimeFrame.objects.none(), widget=forms.CheckboxSelectMultiple,empty_label=None)
Run Code Online (Sandbox Code Playgroud)