2016-08-08 63 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 %},並且一切正常...