2012-07-25 39 views
5

有没有方法在Django中的表单字段标签中加入换行符?放入\n只会导致HTML中出现换行符,而尝试<br>只会显示字符。有没有可以在该字段中指定的等效|safe操作?Django表单字段标签中的换行

回答

14

您可以使用mark_safe使得<br />标签没有逃脱。

它等同于使用模板中safe,所以如果你处理用户输入要小心。如果它是硬编码的字符串,那么使用它是安全的。

from django import forms 
from django.utils.safestring import mark_safe 

class MyForm(forms.Form): 
    my_field = forms.CharField(label=mark_safe('my label<br />next line')) 
+0

它是一个硬编码的常数,谢谢! – 2012-07-25 16:20:32

+0

我认为另一种方法是使用模板 – Anupam 2017-08-19 13:29:21

+0

@Anupam中的{{my_field.label | linebreaks}}这是一个很好的建议,您应该将其作为单独的答案添加。另一种选择是'linebreaksbr'。 – Alasdair 2017-08-19 16:46:02

2

您也可以在模板中直接这样做如下:

{{my_field.label|linebreaks}} 

\n将转换为<br/>这样

按照该doc

单 换行变为HTML换行符(<br />)和一个新行后接 一个空行成为段落中断(</p>)。