Ich möchte eine Vorlage zwischen AJAX- und regulären HTTP-Aufrufen freigeben. Der einzige Unterschied besteht darin, dass eine Vorlage mit der HTML-Datei base.html bereitgestellt werden muss, die andere ohne.
Irgendeine Idee?
Ich möchte eine Vorlage zwischen AJAX- und regulären HTTP-Aufrufen freigeben. Der einzige Unterschied besteht darin, dass eine Vorlage mit der HTML-Datei base.html bereitgestellt werden muss, die andere ohne.
Irgendeine Idee?
Antworten:
Verwenden Sie eine Variable.
{% extends base_template %}
und setzen Sie es in Ihrer Ansicht auf "base.html" in Ihrer Ansicht oder auf eine neue "ajax.html" -Datei, die nur den Block und nichts anderes bereitstellt.
Für die anderen Antworten müssen Sie eine zusätzliche Kontextvariable übergeben. Solange Sie jedoch auf das Anforderungsobjekt zugreifen können, besteht keine Notwendigkeit:
{% extends request.is_ajax|yesno:"app/base_ajax.html,app/base.html" %}
Ich fand das viel bequemer.
{% block 'someblock' %}
auf ähnliche dynamische Weise aufzunehmen?
django-compressor
ein Cache für den app/base.html
Fall erstellt, jedoch nicht für den Fall, der app/base_ajax.html
beim Versuch, die zwischengespeicherte Vorlage zu laden, fehlschlägt (kein Schlüssel im generierten Offline-Manifest).
Sie können {% erweitert Variable%} verwenden
Übergeben Sie einen variablen Basisvorlagennamen, wenn Sie den Kontext in der Ansicht erstellen.
http://docs.djangoproject.com/de/dev/ref/templates/builtins/?from=olddocs#extends