2015-03-31 34 views
0

我试图创建一个包含动态选项的MultipleChoiceField表单域。我想预先选择(动态)一组,而其余的应该保持未选中状态。有没有办法做到这一点?预选CheckboxSelectMultiple中的一组选项

widget=forms.CheckboxSelectMultiple(attrs={'checked': 'checked'}) 

将导致所有的选择被检查,但我只需要一些被检查。

帮助将不胜感激

+0

的[设置上一个Django forms.ChoiceField的选定值(可能重复http://stackoverflow.com/questions/657607/setting-the-selected-value-on -a-Django的形式,choicefield) – ruddra 2015-03-31 11:32:26

回答

0

你有这些选择作为该领域的首次。例如:

my_field = forms.MultipleChoiceField(
     widget=forms.CheckboxSelectMultiple(), 
     choices=(('foo', 'Foo text'), ('bar', 'Bar text'), ('baz', 'Baz text')), 
     initial=('foo', 'bar')) 
    ) 

如果你想这些值是动态的,你必须在渲染的形式之前的任何步骤更改你的领域的初始参数。这样就可以实现这样的:

my_dynamic_initials = ('foo', 'bar') 
    my_form.fields['my_field'].initial = my_dynamic_initials