{% url%} gibt mir NoReverseMatch-Fehler, während reverse () die URL einfach zurückgibt. Warum?

8

Ich weiß nicht, ob das SO Frage ist das gleiche Problem, das ich beschreiben werde, aber es teilt die gleichen Symptome. Leider ist es immer noch ungelöst, während ich schreibe.

Also hier ist mein Problem. Ich versuche, James Bennetts Django-Registrierungs-App zu meinem Django-Projekt hinzuzufügen. Ich bin ziemlich fertig damit, es nach meinen Bedürfnissen zu konfigurieren - benutzerdefinierte Vorlagen und URLs. Gerade als ich dachte, dass alles gut wäre. Ich habe NoReverseMatch error von {% url 'testing' item_id=123 %} verwendet (ich habe auch versucht, den View-Namen zu verwenden, myapp.views.test , aber kein Glück) in einer der benutzerdefinierten Vorlagen, die für die Django-Registrierung benötigt werden. Interessanterweise probierte ich reverse('testing', kwargs={'item_id':123}) in der Shell und die URL wurde zurückgegeben. Ich dachte, {% url %} verwendet reverse() im Backend, aber warum habe ich unterschiedliche Ergebnisse?

urls.py: (die URL-Adresse meiner Site)

%Vor%

activation_email.txt: (die genannte Vorlage. Beachten Sie, dass sie absichtlich in .txt -Erweiterung ist, wie von der Django-Registrierung gefordert und das sollte nicht die Ursache des Problems sein .)

%Vor%

Ich weiß nicht, ob es darauf ankommt, aber ich dachte, ich sollte erwähnen, dass activation_email.txt im Verzeichnis templates von myapp gespeichert ist, obwohl es von% verwendet wird. Code%.

Außerdem verwende ich django 1.4

Ich habe das Gefühl, dass das Problem etwas mit den URL-Namespaces zu tun hat, ein Thema, das ich nie verstanden habe, aber es ist nur eine naive Vermutung. (IMO, die Django-Dokumentation ist großartig, um alles über Django zu erklären, außer wenn es um URL-Namespaces geht)

    
tamakisquare 27.04.2012, 22:56
quelle

1 Antwort

12

Ich bin hier kein Experte, aber in einem Django-Projekt, an dem ich gerade arbeite, benutze ich den Namen der URL ohne Anführungszeichen. Ich habe gerade eine ähnliche Zeile in einer meiner Vorlagen mit Anführungszeichen versehen und es ist der gleiche Fehler aufgetreten wie bei Ihrem Fehler.

Versuchen:

%Vor%     
John 27.04.2012, 23:22
quelle