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

如何在Django表单中为label标签添加form-label自定义类

Django表单为label标签添加自定义class的解决方案

方法1:表单内批量配置(推荐,Django 4.2+版本适用,适合多字段统一添加类)

直接重写表单的__init__方法,遍历所有字段为label批量添加类,修改后的表单代码如下:

class infoForm(ModelForm):
    class Meta:
        model = Info
        fields = ['businessName']
        widgets={
            'businessName':forms.TextInput(attrs={"class": 'form-control'}),
        }
        labels = {
            'businessName': 'Business Name',
        }

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # 遍历所有字段,统一给label添加form-label类
        for field in self.fields.values():
            field.label_attrs = {'class': 'form-label'}

如果仅需要给单个字段添加类,单独指定即可:

def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    self.fields['businessName'].label_attrs = {'class': 'form-label'}

方法2:模板层手动渲染(兼容所有Django版本)

不需要修改表单代码,直接在模板中手动定义label标签即可实现:

<div class="form-item">
  <!-- 手动给label加form-label类 -->
  <label class="form-label" for="{{ form.businessName.id_for_label }}">
    {{ form.businessName.label }}
  </label>
  {{ form.businessName }}
  <!-- 可按需添加字段错误提示 -->
  {% for error in form.businessName.errors %}
    <span class="text-danger">{{ error }}</span>
  {% endfor %}
</div>

注意:label_attrs是Django 4.2版本新增的属性,低于该版本的Django无法使用方法1,直接使用方法2即可实现需求。


内容的提问来源于stack exchange,提问作者Etchosh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 04:57:00