2017-05-26 3 views
0

Ich lese, dass für jede App meiner INSTALLED_APPS in Django HTML-Vorlagen im templates Unterverzeichnis suchen wird. Aber ich bin ein bisschen verwirrt.Django Vorlage Namespace

Zum Beispiel, wenn meine HTML-Vorlagen in der ersten Projekt Erstellen unter:

myproject/ 
    manage.py 
    myapp/ 
     __init__.py 
     settings.py 
     urls.py 
     wsgi.py 
     templates/ 

Soll ich einfach ein template Unterverzeichnis innerhalb des myapp Verzeichnis erstellen und alle meine Vorlagen HTML innen setzen?

Antwort

0

Fast korrekt, das Vorlagen-Unterverzeichnis innerhalb myapp benötigt auch myapp Unterverzeichnis, das alle Ihre App HTML-Dateien enthalten wird. nicht auch Kernprojektdateien mischen wie settings.py und wsgi.py innerhalb app, besser trennen sie aus, damit die bessere Struktur wäre:

myproject/ 
    manage.py 
    mysite/ 
     __init__.py 
     settings.py 
     wsgi.py 
    myapp/ 
     __init__.py 
     urls.py 
     views.py 
     templates/myapp/ 
+0

Aber ist dies nicht überflüssig? Weil "templates /" bereits ein Unterverzeichnis von "myapp /" ist ... –

+0

Dies liegt daran, dass es gut mit dem Template Loader der App-Verzeichnisse zusammenpasst. Vorlagen in der App werden normalerweise für wiederverwendbare Apps oder persönliche Präferenzen verwendet. Wenn also jemand anderes Ihre Vorlage überschreiben möchte, muss der Benutzer lediglich einen Ordner im Vorlagenverzeichnis mit demselben App-Namen erstellen, um einige oder alle Ihrer App-HTML-Dateien zu überblicken. –

+0

Sie können mehr darüber erfahren, wie [app_directories Loader] (https://docs.djangoproject.com/en/dev/ref/templates/api/#django.template.loaders.app_directories.Loader) funktioniert. (Korrektur für vorherigen Kommentar, ich meinte: Übersicht -> Override) –