Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 将所有选项加载到MultpleChoiceField中拾取的选项旁边_Django_Django Forms - Fatal编程技术网

Django 将所有选项加载到MultpleChoiceField中拾取的选项旁边

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

我使用此表单为MultpleChoicesField(不是ModelForm)获取动态选择值,如下所示:

 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
的多回音字段

我希望有帮助