【问题标题】:Unicode/special characters in help_text for Django form?Django表单的help_text中的Unicode/特殊字符?
【发布时间】:2011-12-02 12:46:14
【问题描述】:

我正在尝试向模型字段的help_text 添加一个特殊字符(特别是 ndash)。我在表单输出中使用它,所以我尝试了对 HTML 来说似乎很直观的方法:

help_text='2 – 30 characters'

然后我尝试了:

help_text='2 \2013 30 characters'

仍然没有运气。想法?

【问题讨论】:

    标签: django-models character-encoding python-unicode


    【解决方案1】:

    django 默认转义所有 html。尝试将您的字符串包装在mark_safe

    【讨论】:

    • 那将是我的退路。我只是不确定是否还有其他我遗漏的东西。 Google 和 Stackoverflow 的搜索结果一无所获。
    【解决方案2】:

    您几乎第二次尝试就成功了。首先,您需要通过在字符串前面加上 u 来将字符串声明为 Unicode。其次,你写错了代码点。它也需要一个前言;喜欢\u

    help_text=u'2\u201330 characters'
    

    现在它可以工作了,并且还有一个额外的好处,那就是不会用 HTML 字符实体污染字符串。请记住,字段值可以在其他地方使用,而不仅仅是在表单显示输出中。这个技巧对于在 Python 中使用 Unicode 字符是通用的。

    进一步阅读:

    • Python 中的 Unicode literals,其中提到了其他代码点前言(\x\U
    • PEP263 提供了在源文件中使用实际原始 Unicode 字符的简单说明。

    【讨论】:

      猜你喜欢
      • 2011-04-03
      • 1970-01-01
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      相关资源
      最近更新 更多