【发布时间】:2014-12-03 09:27:39
【问题描述】:
我有一些看起来像这样的代码:
#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 输出的标签标签上有一个指定的类。我知道我能做到:
<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'}) 会成功,但我被卡住了。任何见解都值得赞赏。
【问题讨论】:
-
看看:stackoverflow.com/questions/6959178/… 了解一些想法。
-
也许这会有所帮助:stackoverflow.com/questions/414679/…
-
另一方面,如果可能,请尝试将您的应用程序移植到较新的 Django,因为 1.5 是 now considered insecure。
-
可以通过以下方式将类添加到实际输入中:'character_name = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'class': 'foo'})) ' 但对于标签来说,就没有这样的东西了。
标签: django python-2.7 django-1.5