Django 表单字段标签中的换行符

Posted

技术标签:

【中文标题】Django 表单字段标签中的换行符【英文标题】:Newline in label for Django form field 【发布时间】:2012-07-24 02:31:50 【问题描述】:

有没有办法在 Django 中的表单字段标签中添加换行符?放置 \n 只会在 html 中产生换行符,而尝试 <br> 只会显示字符原样。我可以在字段上指定等效的|safe 操作吗?

【问题讨论】:

【参考方案1】:

您可以使用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'))

【讨论】:

我认为另一种方法是在模板中使用 my_field.label|linebreaks @Anupam 这是一个很好的建议,您应该将其添加为单独的答案。另一个选项是linebreaksbr @Alasdair 将其添加为答案【参考方案2】:

您也可以直接在模板中执行此操作,如下所示:

 my_field.label|linebreaks 

\n 这样会转换成&lt;br/&gt;

根据doc,

一个 换行成为 HTML 换行符 (&lt;br /&gt;) 和新行后跟 一个空行变成一个段落分隔符 (&lt;/p&gt;)。

【讨论】:

以上是关于Django 表单字段标签中的换行符的主要内容,如果未能解决你的问题,请参考以下文章

如何用 li 标签在 textarea 中换行? PHP

文本区域中的换行符

Django 管理文本字段上的新行

如何通过html中的form标签发送换行符“\n”

将换行符(即 \r\n)附加到 post 请求中发送的表单字段

如何在 Django 模板中生成换行符