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

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

【问题讨论】:

    标签: django forms field


    【解决方案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;)。

    【讨论】:

      猜你喜欢
      • 2022-12-17
      • 2011-11-27
      • 1970-01-01
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 2016-07-21
      • 2013-04-07
      • 1970-01-01
      相关资源
      最近更新 更多