自定义 Django 模板标签未加载到模板中
Posted
技术标签:
【中文标题】自定义 Django 模板标签未加载到模板中【英文标题】:Custom Django Template Tags not being loaded into Templates 【发布时间】:2017-07-29 13:27:21 【问题描述】:我已经在互联网上搜索了很长一段时间,但无法解决我的问题。我正在尝试在我的一个 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 %
...但是当我这样做时出现“模板渲染期间错误,无效过滤器:'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 中正确安装了应用程序,并且在视图中正确加载了模板(我知道这是真的,因为我已经使用了一段时间并决定为帖子标题创建链接)
非常感谢您的宝贵时间。
【问题讨论】:
【参考方案1】:你在通话前的模板中有% load cloud_extras %
吗?
顺便说一句,看起来您可能想查看其他示例和url tag,因为您可能一开始就不想使用这样的硬编码链接。相反,尝试找到一种方法来在给定帖子对象的情况下生成正确的相对链接。
【讨论】:
以上是关于自定义 Django 模板标签未加载到模板中的主要内容,如果未能解决你的问题,请参考以下文章
在Django中自定义模板标签以过滤博客中的featured_posts