.
是我的项目根目录,其中manage.py
位于其中。我在./templates/base.html
有一个基本模板。我在./app/templatetags/mytags.py
from django import template
register = template.Library()
@register.unread_tag
def get_unread(user):
return user.notification_set.filter(viewed=False).count()
如何使此标记可用于base.html,所有应用级模板都从该标记继承。
答案 0 :(得分:2)
您的代码定义不正确。您需要使用register.simple_tag
装饰器:
@register.simple_tag(name='unread')
def get_unread(user):
return user.notification_set.filter(viewed=False).count()
然后,您需要将load
标记添加到模板中:
{% load mytags %}
然后,您可以在模板中使用该标记:
{% unread request.user %}
答案 1 :(得分:0)
一个很老的问题,但是自从被问到以来情况已经改变了。
您可以使用settings.py
的{{1}}中的键builtins
在OPTIONS
中为项目中的所有模板加载自定义标签
settings.TEMPLATES
您可以在Django doc - DjangoTemplates内置后端中详细了解这些选项。
从Django 1.9开始支持此选项。