You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 08:35:32