2013-07-19 4 views
5

Ich versuche TemplateView.as_view() in urls.py zu verwenden, dann benennen Sie es mit ye ​​olde templatag url. Sollte das funktionieren? Oder mache ich es einfach falsch ..? Oder ist es ein Teil des alten Mists in meiner App, der sich einmischt? Ich habe ...Wie URLs mit TemplateView.as_view umzukehren/benennen?

<li><a href="{% url "legal" %}">Terms and Conditions</a></li> 

und

url(r'^legal/$', TemplateView.as_view(template_name="legal.html"), name="legal"), 

Welche

NoReverseMatch at /how-it-works/ 
Reverse for '"legal"' with arguments '()' and keyword arguments '{}' not found. 

Mir scheint, das ist nicht immer gonna Arbeit auf diese Weise ergibt.

Wie können wir URLs mit TemplateView umkehren?

Antwort

3

Der Code, den Sie gepostet haben, ist syntaktisch korrekt, aber es gibt noch etwas anderes.

  • Das URL-Tag ist Django 1.5+ Syntax (die Warnung in der Dokumentation beachten here), können Sie bestätigen, dass die auf Sie installieren verwenden? Ich vermute, das ist das Problem, die doppelte Quotierung von legal in der Ausnahmebedingungsnachricht ist sehr verdächtig. Eine Django 1.5+ Ausnahmemeldung würde 'legal', nicht '"legal"' für eine URL enthalten, die vom Dispatcher nicht gefunden wird.
  • Wird die URL vom URL-Dispatcher registriert? Sie können im Debug-Modus erkennen, dass Sie eine ungültige URL (zB 404) drücken, die Ausgabe listet alle gültigen URL-Pfade von Ihrem URLConf auf.

Fügen Sie weitere Informationen hinzu, wenn Sie weiterhin Probleme haben, damit wir weiter isolieren können.

Viel Glück!

+0

Danke, ich bin auf 1.4.5, also ist die kleine Notiz über die Syntax relevant, da sie funktioniert, wenn ich die Anführungszeichen nicht einbeziehe, zB: '{% url legal%}' ist notwendig. –