【问题标题】:How to escape a newline character in a string literal in Django templates?如何在 Django 模板中转义字符串文字中的换行符?
【发布时间】:2012-11-01 15:25:37
【问题描述】:

在我的模板中,我想检查存储在变量中的字符串是否包含换行符。但是,我还没有找到一种方法来转义检查中使用的字符串文字中的换行符。显而易见的

{% if "\n" in description %}
...
{% endif %}

不起作用,似乎自动转义了“\”。

当然,我总是可以实现一个简单的自定义过滤器或模型方法,但我认为必须有一个更简单的方法。在网络上搜索这个很难,因为在 Django 模板的上下文中“转义”主要关注转义 HTML,而不是字符串字符......

【问题讨论】:

    标签: django django-templates escaping


    【解决方案1】:

    您可以在传递给您的模板的上下文字典中放置一个键,可能称为newline,其值为"\n"。然后,您可以在模板中执行 {% if newline in description %} 之类的操作。

    编辑:我检查了 Django 源代码,确实没有内置的方法可以做到这一点。在模板字符串文字中处理的唯一转义序列是反斜杠引号和双反斜杠。

    【讨论】:

    • 这将是一个有效的解决方法,尽管它需要更改视图代码或引入上下文处理器(这对我来说似乎有点过分),因此在所有情况下都不容易实现。感谢您深入研究 Django 代码,有趣的是他们会硬编码两个转义字符但不包括 \n。
    猜你喜欢
    • 2015-03-02
    • 2016-09-18
    • 2016-10-28
    • 2014-09-10
    • 2013-07-16
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多