render_to_response gibt TemplateDoesNotExist aus

8

Ich erhalte den Pfad der Vorlage mit

%Vor%

und in einer anderen Anwendung aufrufen, wo paymenthtml wird in payment_template

kopiert %Vor%

Aber ich bekomme Fehler

  

TemplateDoesNotExist unter / test-payment-url /

     

E: \ testapp \ template \ Zahlung.html

Warum kommt der Fehler?

Bearbeiten: Ich habe folgende Änderung in settings.py vorgenommen und es ist in der Lage, die Vorlage zu finden, aber ich kann den Pfad in der Produktion nicht fest codieren, keine Ahnung?

%Vor%     
dhaval 24.12.2009, 06:46
quelle

4 Antworten

21

Es scheint, als würde Django nur Vorlagen laden, wenn sie sich in einem Verzeichnis befinden, das Sie in TEMPLATE_DIRS definieren, auch wenn sie woanders existieren.

Versuchen Sie dies in settings.py:

%Vor%

und dann in der Ansicht:

%Vor%

Dies würde entweder E:\path\to\project\templates\payment.html oder E:\path\to\project\templates\subdir\payment.html anzeigen. Der Punkt ist, dass sie sich in dem Verzeichnis befinden, das wir in settings.py angegeben haben.

    
John Debs 24.12.2009, 08:08
quelle
11

Übrigens: Eine schwierige Sache ist, dass Django TemplateDoesNotExist wirft, auch wenn die gerenderte Vorlage eine Vorlage enthält, die nicht existiert - {% include "some/template.html" %} ... dieses Wissen hat mich einige Zeit und Nerven gekostet.

    
pcv 09.01.2011 14:44
quelle
2

Ich habe hier keinen Django, aber ich denke, du solltest / statt \\ benutzen?

python hilft Ihnen bei den Schrägstrichen über Betriebssysteme hinweg

    
joetsuihk 24.12.2009 06:50
quelle
1

Sind Sie sicher , dass diese Datei auf Ihrem System existiert?

  

E:\testapp\template\payment.html

Diese Fehlermeldung ist ziemlich einfach und wird angezeigt, wenn Django versucht, Ihre Vorlagendatei über den Pfad im Dateisystem zu finden und sie nicht sehen kann.

Wenn die Datei vorhanden ist, besteht der nächste Schritt darin, die Berechtigungen für diese Datei und die Verzeichnisse zu überprüfen, um sicherzustellen, dass es sich nicht um ein Berechtigungsproblem handelt. Wenn Ihr E: -Laufwerk ein zugeordnetes Netzwerklaufwerk mit einer Netzwerkfreigabe ist, müssen Sie auch die Freigabeberechtigungen überprüfen.

    
Andrew Hare 24.12.2009 06:50
quelle

Tags und Links