2016-11-23 3 views
0

Wir verwenden Django mit Python. Ich habe ein Problem mit Include-Tag. Ich möchte einen Header in alle Module der Anwendung aufnehmen. Im Anwendungsvorlagenverzeichnis enthält alle HTML-Dateien mit Unterordnern von Modulen. In jedem Untermodul, wenn ich Header HTML erstellen und dieses Tag in base.html einfügen, dann funktioniert es. Aber wenn ich den Header HTML im übergeordneten Verzeichnis, funktioniert es nicht für irgendwelche Untermodule. Ich versuchte sogar {% include "../header.html" %} in HTML mit Django-Vorlage, aber kein Glück.Django Include-Tag

Die Projektstruktur für meine Anwendung, in dem Stammverzeichnis habe ich Vorlagen, statische, Handler-Ordner. Innerhalb Vorlagen habe ich sub1 und sub2 Ordner. In Unter1 habe ich base.html und in Vorlagen Eltern-Verzeichnis base.html, header.html, index.html. Siehe unten:

Root 
----templates 
----------Sub1 
-----------------base.html 
----------Sub2 
----------base.html 
----------header.html 
----------index.html 
----static 
----handlers 

Antwort

0

Ich bin mir nicht sicher, ob ich dich verstanden habe. Versuchen Sie einfach {% include "header.html" %}, die Suche nach Django-Vorlage sollte von Vorlagenordner starten.

Der Vorlagenordner wird in der Django-Konfigurationsdatei "setting.py" konfiguriert.

TEMPLATE_PATH = os.path.join(BASE_DIR, 'templates')

Außerdem habe ich ein Projekt, das Django Template entwickeln sich aus dem Back-End mit webpack und Unterstützung Jade, es6 und SCSS seprate können. Die Readme ist in der chinesischen :(, aber Sie können das Projekt, und überprüfen Sie den Quellcode laufen.

https://github.com/njleonzhang/webpack-django-starter

+0

Ich versuchte {% include "header.html"%} dies auch nicht sicher, ob Vorlagen Dateien Loader zuerst oder nein sein muss. –

0

Django Vorlagen enthalten Tag nicht relative Pfade nicht erkennt. Sie müssen es geben Sie den Pfad unter dem Vorlagenverzeichnis so versuchen, stattdessen folgendes mit:

{% include "Sub2/header.html" %} 

Update:

Scheint, wie Ihr "header.html" sind auf der "Sub2" Ebene und nicht im Inneren, dh es ist di rectly unter Vorlagen Verzeichnis So sollten Sie versuchen:

+0

Schon versucht, dass, dint erarbeiten. –

+0

Für den Datensatz Django 1.10 unterstützen jetzt relative Pfade für include und erweitert https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#include – amjoconn

Verwandte Themen