【问题标题】:how to make custom templatetags discoverable in Django如何使自定义模板标签在 Django 中可发现
【发布时间】:2012-01-27 23:14:35
【问题描述】:

我想制作我的自定义模板标签,并按照here 给出的步骤进行操作。据说我需要将我的模板标签存储在应用程序的目录中。所以我创建了一个新应用程序,将模板标签放在那里,并将应用程序包含在installed APPS 中。

但是当我尝试load我的模板中的模板标签时,我收到以下错误:

'generic_tags' is not a valid tag library: Template library generic_tags not found,

当我看到它搜索的目录时,我的应用程序的模板标签库不存在。这意味着它没有在我创建的应用程序中搜索模板标签。我还需要在我的settings.py 文件中添加任何内容吗?

我的模板标签定义文件是

import datetime

from django import template
from django.utils.translation import ugettext, ungettext

register = template.Library()

@register.filter(name='timesince_human')
def humanize_timesince(date):
    if not date:
        return

    delta = datetime.datetime.now() - date

    num_years = delta.days / 365
    if (num_years > 0):
        return ungettext(u"%d year ago", u"%d years ago", num_years) % num_years

    num_weeks = delta.days / 7
    if (num_weeks > 0):
        return ungettext(u"%d week ago", u"%d weeks ago", num_weeks) % num_weeks

    if (delta.days > 0):
        return ungettext(u"%d day ago", u"%d days ago", delta.days) % delta.days

    num_hours = delta.seconds / 3600
    if (num_hours > 0):
        return ungettext(u"%d hour ago", u"%d hours ago", num_hours) % num_hours

    num_minutes = delta.seconds / 60
    if (num_minutes > 0):
        return ungettext(u"%d minute ago", u"%d minutes ago", num_minutes) % num_minutes

    return ungettext(u"%d second ago", u"%d seconds ago", delta.seconds) % delta.seconds

它已存储在名为utilityapp 的应用程序的templatetag 目录中,我还包含__init__.py 文件

【问题讨论】:

  • 目录是templatetags 不是templatetag

标签: django django-templates


【解决方案1】:

你的创造

__init__.py 

在模板标签目录中?执行

register = template.Library()

在你的文件中?

【讨论】:

    【解决方案2】:

    确保你有你的register = template.Library() 之前你的模板标签定义。如果是之后就不行了。还要确保 init.py 存在于 templatetag 目录中,并检查错误输出的其余部分,看看是否还有其他有用的信息。

    【讨论】:

    • 是的,这两件事我都做了...我已经添加了我的模板标签定义文件
    猜你喜欢
    • 1970-01-01
    • 2015-01-20
    • 2021-07-13
    • 2010-12-13
    • 2015-03-14
    • 2012-03-15
    • 1970-01-01
    • 2018-06-17
    相关资源
    最近更新 更多