2016-03-22 6 views
0

Ich verwende ein benutzerdefiniertes Template-Tag in meiner Django App. Beim Versuch, reverse aufzurufen, um eine URL zu erhalten, erhalte ich einen NoReverseMatch Fehler, obwohl derselbe Anruf an anderer Stelle in der App funktioniert.NoReverseMatch von Reverse() in benutzerdefinierten Vorlage verwenden Tag

In portal/templatetags/custom_tags.py:

@register.simple_tag() 
def breadcrumb(view, text, *args): 
    return u'» <a href="' + reverse(view, args) + '">' + text + '</a>' 

Innerhalb einer Vorlage:

{% breadcrumb 'portal-home' 'Portal' %}

In portal/urls.py:

urlpatterns = [ 
    # home 
    url(r'home/$', portal_home, name='portal-home'), 
    ... 
] 

Es ist auf jeden Fall eine Ansicht namens portal-home und wenn ich versuche, reverse('portal-home') woanders in der App (wie in einer Ansicht zum Beispiel) funktioniert es gut. Hier

sind die genauen Fehler:

Reverse for 'portal-home' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: [] 

Antwort

0

Es stellt sich heraus, ich habe vergessen, wie man Python. Ich musste tun:

reverse(view, *args)

Verwandte Themen