2016-12-11 1 views
1

Ich habe über die anderen SO Fragen im Zusammenhang mit diesem Thema, aber keine haben geholfen.django laden keine App-Vorlagen

Ich habe gerade eine App installiert und der INSTALLED_APPS-Variablen in den Einstellungen hinzugefügt. Die App django_messages erweitert eine base.html-Vorlage von jeder ihrer Vorlagen.

Aus irgendeinem Grund rekrutiert django nicht rekursiv das App-Verzeichnis nach dieser Vorlage. Hier

ist der Fehler: In Vorlage /Library/Python/2.7/site-packages/django_messages/templates/django_messages/inbox.html, Fehler in Zeile 1

{% extends "django_messages/base.html" %} 

Diese Datei befindet sich unter: /Library/Python/2.7/site-packages/django_messages/templates/django_messages/base.html

aber der Suchpfad django schenkt ist:

Django versucht, diese Vorlagen Laden, in dieser Reihenfolge:

Mit Motor django:

django.template.loaders.app_directories.Loader: /Library/Python/2.7/site-packages/django_messages/templates/base.html (Source does not exist) 

So basiert auf, was ich über die Template-Loader verstehen es Sinn macht es /Library/Python/2.7/site-packages/django_messages/templates/ für die Dateisuche werden sollte. Aber die Datei heißt "django_messages/base.html", daher verstehe ich nicht, warum django in django_messages/templates nach base.html sucht und das django_messages-Qualifikationsmerkmal ignoriert.

Alle meine anderen Vorlagen (in meinen eigenen Apps) sind so eingerichtet app_name/templates/app_name/xxx.html wie in den django docs angegeben. Alles sieht korrekt aus, funktioniert aber nicht.

Jede Hilfe, die ich müde bin, meinen Kopf darauf zu schlagen.

Danke.

Antwort

1

So fand ich heraus, warum dies geschieht ...

Die Datei django_messages/base.html "base.html" zu erweitern versucht. Ich nehme an, der Grund dafür ist, dass es Ihre eigene base.html-Datei erweitern soll, meine base.html-Datei befindet sich jedoch unter app_name/base.html.

Sobald ich den Pfad in django_messages/base.html geändert habe, habe ich keine Fehler erhalten. Hoffentlich hilft das jemand anderem. Es war verwirrend, weil es sagte, der Fehler habe "django_messages/base.html" aus der Datei django_messages/inbox.html erweitert und diese Pfade sind beide korrekt, es scheint also so zu sein, als würde es die Erweiterungen auf django_messages/base.html evaluieren und konnte nicht Finden Sie diese Datei, aber fügen Sie trackback zu inbox.html statt django_messages/base.html hinzu, was ich erwartet hätte. Wie auch immer, jetzt ist alles gut.