我一直在互联网上搜索这个问题很长一段时间,但一直没能解决我的问题。我试图在我的一个Django模板中连接字符串,最初使用add这样......
{% with "http://127.0.0.1:8000/post/"|add:p.post_id|add:"/" as post_link %}
... used here ...
{% endwith %}
...但发现这是一种多变的错误形式。所以我尝试创建一个自定义模板标签,它将使用名称addstr ...
连接字符串{% with "http://127.0.0.1:8000/post/"|addstr:p.post_id|addstr:"/" as post_link %}
... used here ...
{% endwith %}
...但是在模板渲染过程中出现了#34;错误,无效的过滤器:' addstr'"我这样做错误。
我在正确的位置创建了一个templatetags目录,其中包含 init .py和cloud_extras.py。 cloud_extras.py的内容是:
from django import template
register = template.Library()
@register.filter
def addstr(arg1, arg2):
"""concatenate arg1 & arg2"""
return str(arg1) + str(arg2)
我还在settings.py中正确安装了应用程序,并正确地在视图中加载模板(我知道这是真的,因为我已经使用了一段时间了,并决定创建帖子标题的链接)
非常感谢您的时间。
答案 0 :(得分:1)
在通话之前,模板中是否有{% load cloud_extras %}
?