显示值时如何替换django中的字符串
在模板中显示值时,我需要将任何“更改为” 因此,例如{{account.company_name | escapejs}}应该将任何' 我该怎么做 谢谢 托马斯 **根据下面的评论更新了代码** 我的目录结构如下:显示值时如何替换django中的字符串,django,Django,在模板中显示值时,我需要将任何“更改为” 因此,例如{{account.company_name | escapejs}}应该将任何' 我该怎么做 谢谢 托马斯 **根据下面的评论更新了代码** 我的目录结构如下: myapp/ .... templatetags/ __init__.py replace.py {% from replace load replace %} Replace.py包含: from django import template reg
myapp/
....
templatetags/
__init__.py
replace.py
{% from replace load replace %}
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' )
在我的模板中,我尝试像这样加载customtag:
myapp/
....
templatetags/
__init__.py
replace.py
{% from replace load replace %}
它是这样使用的
company_name='{{ account.company_name|escapejs|replace:"',\'" }}'
然后我收到了这个错误:
TemplateSyntaxError: Invalid block tag: 'from'
TemplateSyntaxError: 'replace' is not a valid tag library: Template library replace not found, tried google.appengine._internal.django.templatetags.replace
然后改成
{% load replace %} instead of {% from replace load replace %}
但是我得到了这个错误:
TemplateSyntaxError: Invalid block tag: 'from'
TemplateSyntaxError: 'replace' is not a valid tag library: Template library replace not found, tried google.appengine._internal.django.templatetags.replace
感谢您的帮助您可以编写自己的筛选器:
@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:"',\'" }}
(我还没有测试过)使用内置过滤器:
根据文档的示例:
{{value | addslashes}}
如果值为
“我正在使用Django”
,则输出将为“我正在使用Django”
谢谢,我在哪里添加过滤器?很抱歉,如果这是一个基本问题文档是您的朋友,并根据您的指示将其添加到我的模板中,但我无法使其工作。我收到以下错误:“TemplateSyntaxError:'replace'不是有效的标记库:找不到模板库replace,尝试了google.appengine.\u internal.django.templatetags.replace”从django.Template导入默认筛选器添加。很抱歉,我错过了。我收到以下错误:“TemplateSyntaxError:“replace”不是有效的标记库:找不到模板库replace,尝试了google.appengine.\u internal.django.templatetags.replace”我在模板顶部尝试了{%load replace%}和{%load replace from mycustomtags%}