2013-12-19 17 views
6

Wenn ich eine URL wie diese:nicht gefunden Error

url(r'^reset/(?P<uid>\w+)/(?P<token>\w+)/$', 'django.contrib.auth.views.password_reset_confirm', name="reset_password") 

und einen URL-Tag wie folgt:

{% url 'reset_password' uid=uid token=token %} 

Warum erhalte ich diese Fehlermeldung, wenn ich versuche, die Seite zu machen, in welches das Tag enthält:

Reverse for 'reset_password' with arguments '()' and keyword arguments not found 

Sowohl die UID als auch das Token sind gültige Zeichenfolgen.

+0

Was ist Ihre Django-Version? –

+0

die Version ist 1.5 – user1427661

+0

Und Sie können die URL in der Website gut gehen? –

Antwort

1

Ich würde sagen, dass Ihre UID oder Ihr Token ein nicht alphanumerisches Zeichen wie "-" oder "." Also würde ich versuchen, die urls.py zu ändern:

Ich mag nicht mit der. in regex, aber wenn Sie nicht oteher Wahlen haben ...

0

versuchen Sie Folgendes:

1.Always versuchen, Ihre URL wie 'app_name:reset_password' zu Namespace mit dem Hinzufügen von nur

app_name='your app name' am Anfang Ihrer urls.py Datei Dies wird Ihnen in Zukunft helfen, wenn Sie mehrere Anwendungen in demselben Projekt bearbeiten, wenn die Namen Ihres HTML gleichzeitig widersprüchlich sind

2.Tragen Sie diese Änderungen in Ihren URLs, wie Sie django Auth Ansichten und ihr Passwort verwenden Reset-Funktion müssen Sie die Weiterleitungs-URL angeben, auch nachdem Sie Ihr Passwort zurückgesetzt haben f oder dass nur hinzufügen

{'post_reset_redirect':'<app_name>:<url_name>'} 

url(r'^reset/(?P<uid>[-\w]+)/(?P<token>[-\w]+)/$', 'django.contrib.auth.views.password_reset_confirm', {'post_reset_redirect':'<your redirection url after reset password'},name="reset_password")} 

Und ja bitte die Variablen auch wie ‚uid‘ überprüfen, weil, wie es django eigene Funktion könnte es eigene Variablennamen so versuchen ‚uidb64‘