2010-02-16 9 views

Antwort

28

Sie sind alle im Django gebaut. Fügen Sie einfach die relevanten URL-Muster hinzu. Wie folgt.

from django.contrib.auth import views as auth_views 

patterns+=('', 
url(r'^passreset/$',auth_views.password_reset,name='forgot_password1'), 
url(r'^passresetdone/$',auth_views.password_reset_done,name='forgot_password2'), 
url(r'^passresetconfirm/(?P<uidb36>[-\w]+)/(?P<token>[-\w]+)/$',auth_views.password_reset_confirm,name='forgot_password3'), 
url(r'^passresetcomplete/$',auth_views.password_reset_complete,name='forgot_password4'), 
) 

Und, oh, während Sie dabei sind, fügen Sie auch die Ansichten und URL-Muster für Passwort ändern.

url(r'^password/change/$', 
    auth_views.password_change, 
    name='auth_password_change'), 
url(r'^password/change/done/$', 
    auth_views.password_change_done, 
    name='auth_password_change_done'), 

Sie sind in der documentation natürlich aufgeführt.

Sie müssen Ihre eigenen Vorlagen bereitstellen.

+1

+1 Vielen Dank! Kommt es auch mit E-Mails? – Viet

+2

Ja, es sendet auch die entsprechenden E-Mail-IDs. –

+1

Wenn Sie die django-Registrierungs-App verwenden, müssen Sie nur die urls.py von django-registration hinzufügen, dh fügen Sie 'url (r '^ accounts /', include ('registration.urls'))' zu Ihrem hinzu eigene urls.py –

4

Eigentlich seit Django 1.4 gibt es eine einfache Möglichkeit, das Passwort vergessen Link zu erhalten direkt im Admin-Login-Seite erscheinen (die wie die präzise Frage klingt gefragt):

https://docs.djangoproject.com/en/1.4/ref/contrib/admin/#auth-password-reset

Sie können eine hinzufügen Passwort-Reset-Funktion auf der Admin-Site durch Hinzufügen von ein paar Zeilen zu Ihrer URLconf. Insbesondere fügen Sie diese vier Muster:

url(r'^admin/password_reset/$', 
    'django.contrib.auth.views.password_reset', 
    name='admin_password_reset'), (r'^admin/password_reset/done/$', 
    'django.contrib.auth.views.password_reset_done'), 
(r'^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 
    'django.contrib.auth.views.password_reset_confirm'), 
(r'^reset/done/$', 
    'django.contrib.auth.views.password_reset_complete'), 

(Dies setzt voraus, Sie das Admin bei Admin hinzugefügt haben/und erfordert, dass Sie die URLs setzen mit^Admin Start/vor der Zeile, die enthält Admin-App selbst).

Changed in Django 1.4 Die Anwesenheit der admin_password_reset URL genannt wird dazu führen, ein „Passwort vergessen?“ Link auf dem Standard-Admin-Login-Seite unter dem Kennwort-Feld erscheint

+0

+1 Danke Stefano! Die Frage wurde gestellt, als ich noch Django 1.2/1.3 benutzte :) – Viet

+0

@Viet dachte so! Aber ich mag es sogar alte Antworten zu aktualisieren, wenn eine neue, einfachere Lösung erscheint! – Stefano

Verwandte Themen