如何为Django表单的help_text添加HTML类?

10 投票
4 回答
6168 浏览
提问于 2025-04-15 19:14

我有一个简单的表单

class MyForm(forms.Form):
    ...
    fieldname = forms.CharField(help_text="Some help text")

如果我想的话,可以用Django提供的方便方法 {{ form.as_ul }} 来显示这个表单,现在我需要给帮助文本加点样式,但我不知道该怎么做。Django似乎没有把这个字符串包裹在任何可以让我的CSS样式应用到它的东西里,所以目前我只能退而求其次,使用:

class MyForm(forms.Form):
    ...
    fieldname = forms.CharField(help_text='<div class="helptext">Some help text</div>')

知道这样做是不对的,所以我在这里寻求更好的建议。

4 个回答

2

我想这没有其他办法,不然就不需要这个问题了:http://code.djangoproject.com/ticket/8426

你可以使用那里的补丁。

14

更方便的方法是这样做:

from django.utils.safestring import mark_safe

然后:

field = models.TextField(help_text=mark_safe("some<br>html"))
7

在表单选项中,你能自定义的内容是有限的。更灵活的解决办法是自己创建一个表单模板,然后重复使用它,而不是使用 {{ form.as_something }} 这种方式。你可以看看Django文档中的这些主题:

当我需要对表单的标记进行大幅度自定义,同时又想保持代码简洁时,这个方法效果很好。

撰写回答