如何在Django表单字段的帮助文本中输入HTML?

dan*_*007 23 django django-forms

我试着用我的Django表单为Choice Field生成帮助文本

i_agree = forms.CharField(label="", help_text="Initial to affirm that you agree to the <a href='/contract.pdf'>contract</a>.", required=True, max_length="4")
Run Code Online (Sandbox Code Playgroud)

但是,原始HTML将在帮助文本中呈现为输出.如何在Django表单字段的帮助文本中输入HTML?

Fur*_*tor 46

您可以mark_safe在模型中使用来指示html是安全的,它应该被解释为:

from django.utils.safestring import mark_safe

i_agree = forms.CharField(label="", help_text=mark_safe("Initial to affirm that you agree to the <a href='/contract.pdf'>contract</a>."), required=True, max_length="4")
Run Code Online (Sandbox Code Playgroud)


Fer*_*ker 11

如果您自己遍历表单,也可以在模板中将其标记为安全:

{% for f in form %}
    {{f.label}}{{f}}{{f.help_text|safe}}    
{%endfor%}
Run Code Online (Sandbox Code Playgroud)

这是在模板中这样做的一个非常简单的例子.你需要做的不仅仅是让它看起来不错.

  • 这是一个很好的解决方案,但它不适用于“form.as_[p,ul,table]”的自动输出。 (2认同)