Seite 1 von 1

[Django] Inclusion-Tag wird nicht ausgeführt

Verfasst: Donnerstag 19. April 2012, 16:47
von sparrow
Hallo Forum,

ich möchte in meiner Anwendung ein Template mit dem {% include %}-Tag in einem anderen Template anzeigen.

Folgenden Code habe ich in der views.py:

Code: Alles auswählen

register = template.Library()


def mail_notification(user):
    print "Angefragt"
    print "USER", user
    count = "Hallo"
    return {'count': count,}

register.inclusion_tag("/mail/notification.html")(mail_notification)
In meinem Template steht:

Code: Alles auswählen

{% include "mail/notification.html" with user=request.user %} 
Grundsätzlich funktioniert das schonmal, das Template wird angezeigt.
Aus der Doku entnommen hatte ich aber eigentlich, dass folgendes funktioniert:

Code: Alles auswählen

{% include mail_notification with user=request.user %} 
Das bricht allerdings mit einem Gehler ab (TemplateSyntaxError).

Aber selbst wenn ich das über die Template-Datei anspreche, was ja funktioniert, wird die Funktion dahinter nicht angesprochen. Sprich, ich bekomm weder den Wert zurück den ich im Template verarbeiten möchte, noch kommt es zu Ausgaben auf der Konsole. Ich habe das auch schon mit und ohne Paramter versucht.

Kann mir jemand weiterhelfen, wäre sehr nett.

Gruß
Sebastian

Inclusion-Tag funktioniert nicht

Verfasst: Freitag 20. April 2012, 07:39
von sparrow
Argh...

das war natürlich mein Fehler, funktionieren tut es aber auch jetzt nicht ;)

Ich glaube, dass das alles in der views.py auch falsch aufgehoben ist, aber ich weiß nicht wohin damit. Um sicher zu gehen, dass das ganze auch mit dem Import der App registriert wird, habe ich das alles in die __init__.py der App gepackt:

Code: Alles auswählen

from django import template

register = template.Library()

def mailnotification(user):
    print "USER:", user
    count = "Hallo"
    return {'count': count,}

register.inclusion_tag("/mail/notification.html")(mailnotification)
print "REGISTER IST DURCH!"

Die Registrierung wird auch durchgeführt.

Im Template:

Code: Alles auswählen

{% mailnotification with user=request.user %}
Fehler:
Invalid block tag: 'mailnotification' im Browser

Gruß
Sebastian

Re: [Django] EDIT Inclusion-Tag wird nicht ausgeführt

Verfasst: Freitag 20. April 2012, 12:16
von sparrow
Hah, gelöst.

Hier steht wie es funktioniert. So richtig am Stück:

http://iraniweb.com/blog/?p=9