自定义 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 中自定义模板标签以过滤博客中的特色帖子

在Django中自定义模板标签以过滤博客中的featured_posts

Django 自定义模板标签和模板加载器

Jinja - 加载自定义模板标签集

如何根据 django 模板中的不同提交按钮在更新视图中自定义成功 url?

如何在 Django 中自定义单选按钮