Django 将所有选项加载到MultpleChoiceField中拾取的选项旁边
我使用此表单为MultpleChoicesField(不是ModelForm)获取动态选择值,如下所示:Django 将所有选项加载到MultpleChoiceField中拾取的选项旁边,django,django-forms,Django,Django Forms,我使用此表单为MultpleChoicesField(不是ModelForm)获取动态选择值,如下所示: 25 class SelectedVisitorsForm(forms.Form): 26 27 visitors = forms.MultipleChoiceField(required=True) 28 def __init__(self,visitors_dict, *args, **kwargs): 29 super(SelectedVis
25 class SelectedVisitorsForm(forms.Form):
26
27 visitors = forms.MultipleChoiceField(required=True)
28 def __init__(self,visitors_dict, *args, **kwargs):
29 super(SelectedVisitorsForm, self).__init__(*args, **kwargs)
30 self.fields['visitors'] = forms.MultipleChoiceField(choices=visitors_dict)
form = SelectedVisitorsForm(data={visitors:[1,3]})
现在,让我们假设我想传递给这个表单选项,其中一些选项已经被选中。我该怎么做
换句话说,我希望在访问者dict
中通过类似的内容:
visitors_dict = (
(1,'First Option',1),
(2,'Second Option',0),
(3,'Third Option',1),
)
这意味着在所有选项中,已选择了
第一个
和第三个
。我知道Django没有类似的东西,但这只是为了展示总体思路。比这更简单。实例化表单时,将带有参数data
和关键字visitors
的字典作为列表传递给表单,其中包含要选择的选项字段的标识符(选项元组中最左边的值)
例如,假设您有:
class SelectedVisitorsForm(forms.Form):
CHOICE = (
(1,'user'),
(2, 'admin'),
(3, 'guest'),
)
visitors = forms.MultipleChoiceField(required=True, choices=CHOICES)
然后,当您在视图中实例化此表单时,请执行以下操作:
25 class SelectedVisitorsForm(forms.Form):
26
27 visitors = forms.MultipleChoiceField(required=True)
28 def __init__(self,visitors_dict, *args, **kwargs):
29 super(SelectedVisitorsForm, self).__init__(*args, **kwargs)
30 self.fields['visitors'] = forms.MultipleChoiceField(choices=visitors_dict)
form = SelectedVisitorsForm(data={visitors:[1,3]})
这将显示选中了user
和guest
的多回音字段
我希望有帮助