2016-08-08 62 views
0

这里是我的文件夹组织: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

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

+0

有495名代表的人真的应该知道比发布代码截图而不是代码本身更好。 – e4c5

+0

真正的问题,为什么那么糟糕?因为你不能复制/粘贴?我会更新它。 – Laurent

+0

http://meta.stackoverflow.com/questions/303812/discourage-screenshots-of-code-and-orrors – e4c5

回答

2

我很笨。

我在一个基本html文件中加载了{% load i18n staticfiles core_extras %},然后我在子html文件上进行扩展。 get_develop_state正在工作,因为我将它作为变量DEVELOP导入,该变量在子html文件中可用,但不是过滤器in_group。我只是在子html中加载{% load in_group %},并且一切正常...