如何编写Django模板自定义标签在单引号前添加反斜杠?
我这样做对吗?(可能不对……有人能纠正一下吗?谢谢)
@register.filter('addslashes')
@stringfilter
def addslashes(text, arg):
return text.replace('\'','\\'')
{{ query|addslashes }}
1 个回答
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)