Django:设置表单属性MultipleChoiceField的选项

2024-10-06 12:15:09 发布

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

我有以下django表格:

class SpecifyColumnsForm(forms.Form):
    columns = forms.MultipleChoiceField(required=False,
    widget=forms.CheckboxSelectMultiple)

现在,我想从views.py中指定这个MultipleChoiceField的选项。我该怎么做?

我试过以下方法,但没有成功:

        columns_form = SpecifyColumnsForm(request.POST)
        columns_form.choices = (('somestuff', 'spam'),
                                ('otherstuff', 'eggs'),
                                ('banana', 'bar'))

谢谢!


Tags: columnsdjangopyformfalserequiredformswidget
2条回答

documentation本身声明

class MultipleChoiceField(**kwargs)¶

[...]

Takes one extra required argument, choices, as for ChoiceField.

所以你要做的就是

cool_choices = (('somestuff', 'spam'),
                ('otherstuff', 'eggs'),
                ('banana', 'bar'))

class SpecifyColumnsForm(forms.Form):
    columns = forms.MultipleChoiceField(
        required=False,
        widget=forms.CheckboxSelectMultiple,
        choices=cool_choices)

在views.py中,必须设置:

choices = (('somestuff', 'spam'),
           ('otherstuff', 'eggs'),
           ('banana', 'bar'))
form.fields["columns"].choices = choices

这对我有效,我只是不确定是否可以避免在forms.py中设置choices。如果这是MultipleChoiceField的必需参数,我认为您无论如何都需要将它放在forms.py中,否则您的表单可能无效。

相关问题 更多 >