2016-08-08 14 views
0

Hier ist meine Ordner Organisation:django benutzerdefinierte Filter arbeiten nicht

enter image description here

core_extras.py Inhalt:

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 

Wie lade ich benutzerdefinierte Tag/Filter in html:

{% load i18n staticfiles core_extras %} 
{% get_develop_state as DEVELOP %} 

Wie verwende ich mein Tag/Filter:

{% if DEVELOP or request.user|in_group:"testers" %} 

Die get_develop_state richtig funktioniert, aber für meine Filter in_group, habe ich den Fehler Invalid filter: 'in_group'. Die Applikation core ist in meiner INSTALLED_APPS.

Warum ist mein Filter nicht registriert?

+0

Eine Person mit 495 Wiederholungen sollte wirklich besser wissen, als Screenshots des Codes anstelle des Codes selbst zu posten. – e4c5

+0

echte Frage, warum ist das schlecht? Weil Sie nicht kopieren/einfügen können? Ich werde es aktualisieren. – Laurent

+0

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

Antwort

2

Ich bin dumm.

Ich geladen {% load i18n staticfiles core_extras %} in einer Basis-HTML-Datei, die ich dann auf Kind HTML-Dateien erweitern. Das get_develop_state funktionierte, weil ich es als eine Variable DEVELOP importiere, die auf den Kindhtml-Dateien, aber nicht dem Filter in_group verfügbar ist. Ich lud gerade {% load in_group %} in das Kind html und alles funktioniert ...