django自定义过滤器无法正常工作

时间:2016-08-08 08:20:37

标签: python django

这是我的文件夹组织:

enter image description here

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

为什么我的过滤器未注册?

1 个答案:

答案 0 :(得分:2)

我很蠢。

我将{% load i18n staticfiles core_extras %}加载到基本html文件中,然后我扩展到子html文件。 get_develop_state正在运行,因为我将其导入为变量DEVELOP,该变量可用于子html文件,但不能用于过滤器in_group。我刚刚在子HTML中加载了{% load in_group %},一切正常......