2013-07-29 4 views
9

Ich möchte die Vorlagen einer externen App überschreiben (allauth, in Site-Paketen installiert). Leider habe ich keinen Rat gelesen. Ich habe folgendes meine settings.py:Vorlagen der externen App in Django überschreiben

PROJECT_ROOT = os.path.normpath(os.path.dirname(os.path.abspath(__file__))) 
TEMPLATE_DIRS = (os.path.join(PROJECT_ROOT, 'templates', 'allauth')) 

und kopiert alle Vorlagen (this content) zu my_project_dir/templates/allauth. Aber wenn ich den Server neu starte und die Seite neu lade, erhalte ich nur die gerenderten Vorlagen von der ursprünglichen allauth-App in Site-Paketen, nicht meine eigenen Vorlagen. Irgendwelche Hinweise?

Antwort

7

Die Art und Weise Ich neige dazu, um herauszufinden, was los ist (mit DEBUG Set True) ist eine Ansicht, machen eine Vorlage zu haben, die nicht existieren, und Blick auf die Liste der Standorte Django versucht, aus Vorlagen zu laden (was in der Fehlerseitenausgabe enthalten sein wird).

Welche Vorlagen versuchen die Ansichten zu rendern? Wenn sie versuchen, allauth/foo.html zu rendern, müssen Sie my_project_dir/templates zu Ihrer TEMPLATE_DIRS Einstellung hinzufügen, nicht .

27

Überprüfen Sie die INSTALLED_APPS Reihenfolge, die erste Vorlage übereinstimmt wird gerendert.

In diesem Sinne können Sie einfach die Vorlage unter dem gleichen Pfad in einer benutzerdefinierten App hinzufügen.