如何编写Django模板自定义标记,在单引号前添加斜杠?

时间:2010-02-03 21:27:49

标签: python django templates

我这样做了吗? (可能不是......有人正确吗?谢谢)

@register.filter('addslashes')
@stringfilter
def addslashes(text, arg):
    return text.replace('\'','\\'')


{{ query|addslashes }}

1 个答案:

答案 0 :(得分:4)

内置过滤器的名称完全相同:addslashes

它也会转义双引号和双斜线。如果您只想要单引号,则必须对其进行调整并以不同方式命名。

以下是原作的工作原理:

def addslashes(value):
    """
    Adds slashes before quotes. Useful for escaping strings in CSV, for
    example. Less useful for escaping JavaScript; use the ``escapejs``
    filter instead.
    """
    return value.replace('\\', '\\\\').replace('"', '\\"').replace("'", "\\'")
addslashes.is_safe = True
addslashes = stringfilter(addslashes)