【问题标题】:How to properly add template tags to a django project如何正确地将模板标签添加到 django 项目
【发布时间】:2018-01-19 23:18:17
【问题描述】:

我正在玩django-gentelella 并尝试将自定义模板标签添加到项目中。

根据最新的 Django 文档,应该添加一个“templatetags”目录,与models.py、views.py 等处于同一级别。另外,一个init.py 文件应该是放在目录中。

我将模板标签添加到名为“template_tags.py”的文件中并重新启动服务器。在我的模板中,我使用文件顶部的“{% load template_tags %}”加载文件。

不幸的是,这还不起作用。根据 Django 文档,还需要将 template_filters 添加到 INSTALLED APPS。

我的问题是我无法弄清楚如何以点表示法获得正确的路径。谁能指出我正确的方向?

【问题讨论】:

  • 您不将模板标签添加到 INSTALLED_APPS,而是添加它们所在的应用程序。不应该涉及任何虚线路径。

标签: python django gentelella


【解决方案1】:

/profiles/templatetags/custom_tags.py

@register.filter(name='getLocalTimeDifference')
def getLocalTimeDifference(value):
    value = value.replace(..)
    return value

/profiles/templates/navbar.html

{% load custom_tags %}
...

<div class="notification-meta">
    <small class="timestamp">{{ notification.timesince | getLocalTimeDifference}} before </small>
</div>

附: __init_.py 也应该添加到 templatetags 目录中

【讨论】:

  • 我试过了,现在我得到:'template_tags' 不是一个注册的标签库。必须是以下之一: admin_list admin_modify admin_static admin_urls cache i18n l10n log static staticfiles tz
  • 是你的python文件'template_tags.py'的名字吗?
  • 是的。真奇怪。
猜你喜欢
  • 1970-01-01
  • 2014-10-10
  • 2021-01-29
  • 2020-08-30
  • 1970-01-01
  • 2018-09-12
  • 2013-08-02
  • 2021-11-14
  • 1970-01-01
相关资源
最近更新 更多