我需要改变任何'到了在我的模板中显示值时。
所以例如{{account.company_name | escapejs}}应该替换任何'用\'
我该怎么做?
感谢 托马斯
**基于以下评论的更新代码**
我的目录结构是这样的:
myapp/
....
templatetags/
__init__.py
replace.py
Replace.py包含:
from django import template
register = template.Library()
from django.template import defaultfilters
@register.filter
@defaultfilters.stringfilter
def replace(value, args=","):
try:
old, new = args.split(',')
return value.replace(old, new)
except ValueError:
return value
在settings.py中我有
INSTALLED_APPS = ( 'myapp' )
在我的模板中,我尝试加载自定义标签:
{% from replace load replace %}
并且像这样使用
company_name='{{ account.company_name|escapejs|replace:"',\'" }}'
然后我收到了这个错误:
TemplateSyntaxError: Invalid block tag: 'from'
然后改为
{% load replace %} instead of {% from replace load replace %}
然后我收到了这个错误:
TemplateSyntaxError: 'replace' is not a valid tag library: Template library replace not found, tried google.appengine._internal.django.templatetags.replace
感谢任何帮助
答案 0 :(得分:0)
您可以编写自己的过滤器:
@register.filter
@defaultfilters.stringfilter
def replace(value, args=","):
try:
old, new = args.split(',')
return value.replace(old, new)
except ValueError:
return value
然后在你的模板中:
{% load replace from mycustomtags %}
{{ account.company_name|escapejs|replace:"',\'" }}
(我还没有测试过)
答案 1 :(得分:0)