Heim  >  Artikel  >  Backend-Entwicklung  >  Hier sind einige fragenbasierte Titel, die zu Ihrem Inhalt passen: Direkt und konkret: * Warum gibt Django einen TemplateDoesNotExist-Fehler aus, obwohl meine Vorlagen vorhanden sind? * Laden der Django-Vorlage:

Hier sind einige fragenbasierte Titel, die zu Ihrem Inhalt passen: Direkt und konkret: * Warum gibt Django einen TemplateDoesNotExist-Fehler aus, obwohl meine Vorlagen vorhanden sind? * Laden der Django-Vorlage:

Barbara Streisand
Barbara StreisandOriginal
2024-10-29 03:16:02869Durchsuche

Here are some question-based titles that fit your content:

Direct and Specific:

* Why Does Django Throw a TemplateDoesNotExist Error, Even Though My Templates Are Present?
* Django Template Loading: How to Fix 'TemplateDoesNotExist' Errors When Templa

Django TemplateDoesNotExist

Problem

Django kann angegebene Vorlagen nicht finden und löst Ausnahmen vom Typ TemplateDoesNotExist aus. Der Ort, an dem Django die Vorlagen zu finden erwartet, existiert nicht, obwohl die Vorlagen auf der Festplatte vorhanden sind.

Djangos Reihenfolge beim Laden von Vorlagen

Django folgt beim Laden von Vorlagen einer bestimmten Reihenfolge:

  • django.template.loaders.filesystem – Lädt Vorlagen aus dem Dateisystem.
  • django.template.loaders.app_directories – Lädt Vorlagen aus den Vorlagenverzeichnissen der Anwendungen.

Untersuchung von TEMPLATE_DIRS

In diesem Fall weist die Konfiguration für TEMPLATE_DIRS Django an, in /usr/lib/python2.5/site-packages/projectname/templates nach Vorlagen zu suchen. Die Vorlagen sind jedoch in /usr/lib/python2.5/site-packages/projectname/templates/appname/template_name.html organisiert. Django kann die Vorlagen nicht finden, da es davon ausgeht, dass sie sich im Stammverzeichnis des Vorlagenverzeichnisses befinden.

Lösung 1

Um das Problem zu beheben, verschieben Sie die Vorlagen nach /usr/lib/python2.5 /site-packages/projectname/templates/template_name.html.

Lösung 2

Alternativ können Sie TEMPLATE_DIRS ändern, um in den Vorlagenverzeichnissen der Anwendungen nach Vorlagen zu suchen:

<code class="python">TEMPLATE_DIRS = (
    os.path.join(SETTINGS_PATH, 'appname1/templates'),
    os.path.join(SETTINGS_PATH, 'appname2/templates'),
    os.path.join(SETTINGS_PATH, 'appname3/templates'),
)</code>

Eigentumsberechtigungen

Wenn die oben genannten Lösungen nicht funktionieren, überprüfen Sie die Eigentumsberechtigungen des Vorlagenverzeichnisses. Im gegebenen Fall wurde das Problem durch Ausführen von chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/* behoben, da der Webserverbenutzer entsprechende Berechtigungen für den Zugriff auf die Vorlagen benötigte.

Das obige ist der detaillierte Inhalt vonHier sind einige fragenbasierte Titel, die zu Ihrem Inhalt passen: Direkt und konkret: * Warum gibt Django einen TemplateDoesNotExist-Fehler aus, obwohl meine Vorlagen vorhanden sind? * Laden der Django-Vorlage:. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn