如何在django-crispy-forms中默认勾选多选复选框选项?
实现多选复选框默认勾选的两种方法
要让documents_required字段默认勾选选项1(TC)和选项2(Marksheet),可以通过以下两种方式实现:
方法一:在字段定义时设置初始值
直接在MultipleChoiceField的参数中指定initial为需要默认勾选的选项值(对应documents_req中的第一个元素):
documents_required = forms.MultipleChoiceField( choices=documents_req, required=False, widget=forms.CheckboxSelectMultiple, initial=['1', '2'] # 默认勾选TC和Marksheet )
方法二:在表单初始化方法中设置初始值
如果需要动态控制默认勾选值,可以在表单的__init__方法中设置:
class AddStudentForm(forms.Form): ... documents_required = forms.MultipleChoiceField(choices=documents_req,required=False,widget=forms.CheckboxSelectMultiple) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # 添加这行代码设置初始值 self.fields['documents_required'].initial = ['1', '2'] self.helper = FormHelper() self.helper.form_class = 'form-horizontal' self.helper.form_tag = False self.helper.label_class = 'col-lg-3' self.helper.field_class = 'col-lg-8' self.helper.layout = Layout( # 现有布局代码不变 ... )
两种方法都能实现默认勾选的效果,选择哪种取决于你是否需要动态调整初始值。
内容的提问来源于stack exchange,提问作者BullHump
相关产品推荐
相关产品推荐

