FormFieldのlabel属性にhtmlタグを入れる
そんなことをしなきゃいけないケースはほとんどないけど一応メモしておく。
試しに<br/ >を入れてみる
class SampleForm(forms.Form): sample_field = forms.CharField(label=u"abc<br/ >xyz")
これだとhtmlがエスケープされるので改行にならない
from app.student.forms import SampleForm from django.template import Context, Template form = SampleForm() context = Context(dict(form=form)) print Template("{{ form }}").render(context) # => u'<tr><th><label for="id_sample_field">abc<br/ >xyz:</label></th><td><input id="id_sample_field" name="sample_field" type="text" /></td></tr>'
エスケープさせないためには、Formを定義するときにmark_safeを使う
from django.utils.safestring import mark_safe class SampleForm(forms.Form): sample_field = forms.CharField(label=mark_safe(u"abc<br/ >xyz"))
from app.student.forms import SampleForm from django.template import Context, Template form = SampleForm() context = Context(dict(form=form)) print Template("{{ form }}").render(context) # => u'<tr><th><label for="id_sample_field">abc<br/ >xyz:</label></th><td><input id="id_sample_field" name="sample_field" type="text" /></td></tr>'