这是我的文件夹组织:
core_extras.py内容:
from django.contrib.auth.models import Group
from django.conf import settings
from django import template
register = template.Library()
@register.simple_tag
def get_develop_state():
return settings.DEVELOP
@register.filter(is_safe=True)
def in_group(user, group_name):
group = Group.objects.get(name=group_name)
return user.groups.filter(name=group_name).exists()
@register.filter
def do_nothing(value):
return value
我如何在html中加载自定义标记/过滤器:
{% load i18n staticfiles core_extras %}
{% get_develop_state as DEVELOP %}
我如何使用我的标签/过滤器:
{% if DEVELOP or request.user|in_group:"testers" %}
get_develop_state
工作正常,但对于我的过滤器in_group
,我收到错误Invalid filter: 'in_group'
。
应用core
位于INSTALLED_APPS
。
为什么我的过滤器未注册?
答案 0 :(得分:2)
我很蠢。
我将{% load i18n staticfiles core_extras %}
加载到基本html文件中,然后我扩展到子html文件。 get_develop_state
正在运行,因为我将其导入为变量DEVELOP
,该变量可用于子html文件,但不能用于过滤器in_group
。我刚刚在子HTML中加载了{% load in_group %}
,一切正常......