我有一些看起来像的代码:
#form.html
<form action="/form-action" method="post">
{{form.faction.label_tag}}
{{form.faction}}<br />
{{form.character_name.label_tag}}
{{form.character_name}}
</form>
#form.py
class CharacterForm(forms.Form):
FACTION_CHOICES = (
('Sith', 'Sith Empire'),
('Republic', 'Republic Alliance')
)
faction = forms.ChoiceField(choices=FACTION_CHOICES)
character_name = forms.CharField(max_length=100)
但是我希望在html输出的label标签上有一个指定的类。我知道我能做到:
<form action="/form-action" method="post">
<label for="id_faction" class="foo">{{form.faction.label}}:</label>
{{form.faction}}<br />
<label for="id_character_name" class="bar">{{form.character_name.label}}:</label>
{{form.character_name}}
</form>
我之前使用过Rails,你可以按照以下方式做点什么:
<%= f.label :field, class: "baz" %>
并且希望在django中有一个简单的解决方案。我认为使用form.field-name.label_tag(attrs={'class':'custom-class-name'})
会解决问题但是我很困难。任何见解都表示赞赏。
答案 0 :(得分:0)
为此,我总是使用widget_tweaks
现在为字段添加一个类&#34; 名称&#34; form1 执行:
{{ form1.name|add_class:"baz" }}
或添加2个或更多
{{ form1.name|add_class:"baz baz2 baz3" }}
将 class =&#34; baz baz2 baz3&#34; 添加到您的字段html输出
您还可以添加属性:
{{ form1.name|attr:"size:200"|attr:"color:blue"}}
并结合两个^^
{{ form1.name|add_class:"baz baz2 baz3"|attr:"size:200"|attr:"color:blue"}}
您还可以通过根据类型包含片段来测试适合的输出的字段类型。这就是我的所作所为。 去咨询widget_tweaks的文档 它适用于Django 1.6和1.7 希望它能帮到你