给出带有一些字段的Django表单:
class FruitsForm(forms.Form):
fruit_choices = forms.TypedMultipleChoiceField("Fruits I Like", required=True,
widget=forms.CheckboxSelectMultiple())
name = forms.CharField(required=True, max_length=20)
我有一堆3种水果 - 苹果,橙子和梨。但是,当加载表单时,我只想预先选择/预先检查Apple。
我知道要选中复选框,请使用attrs={'checked' : 'checked'}
字典,但如何在更细粒度的范围内进行?
换句话说,我希望表格看起来:
Name: [Text Field]
Fruits I Like: Apple [X]
Fruits I Like: Orange [ ]
Fruits I Like: Pear [ ]
答案 0 :(得分:2)
要完成此操作,您需要使用initial。指定initial
值可以设置预选选项。
例如,如果你发送了你的选择:choices = ((1, 'Apple'), (2, 'Orange'), (3, 'Pear'))
,你会这样做:
fruit_choices = forms.TypedMultipleChoiceField(label="Fruits I Like", required=True,
widget=forms.CheckboxSelectMultiple(), choices=choices, initial=1)
如果您希望这是基于规则的,您还可以选择设置initial = my_initial_fruit
,其中my_initial_fruit
是项目中其他位置定义的函数。