Ho un problema con il funzionamento del bit password_Reset_confirm.NoReverseMatch on password_Reset_confirm
url:
(r'^password_reset/$', 'django.contrib.auth.views.password_reset'),
(r'^password_reset_done/$', 'django.contrib.auth.views.password_reset_done'),
(r'^password_reset_confirm/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm'),
password_reset_email.html, che comprende questo:
{% load url from future %}
Someone asked for password reset for email {{ email }}. Follow the link below:
{{ protocol}}://{{ domain }}{% url 'password_reset_confirm' uidb36=uid token=token %}
Ma poi dopo aver presentato la mia email per resettare la password, ottengo questo messaggio di errore visualizzato:
NoReverseMatch a/password_reset/Reverse per 'password_reset_confirm' con argomenti '()' e argomenti parola chiave '{' uidb36 ':' 1 ',' token ':' 38d-b5ec0b2a2321f522f954 '}' non trovato.
Pensavo che dal momento che questo utilizzava una build in vista, non avrei dovuto preoccuparmi di nient'altro?
Grazie per la consulenza,
Aggiornamento:
Dopo aver utilizzato il percorso completo, sembra funzionare. Tuttavia invia due email: e ognuna ha un link diverso. Perché? E dove imposto il {{dominio}}? Grazie
Follow the link below:
http://example.com/password_reset_confirm/1-38d-b5ec0b2a2321f522f954/
Follow the link below:
http://example.com/password_reset_confirm/2-38d-18482e1f129c84b9c2bc/
Update 2
ho capito. Nel caso in cui qualcun altro abbia questo problema. È necessario impostare il proprio nome di dominio come il Sito per la vostra applicazione:
In Admin o console django:
>>> my_site = Site.objects.get(pk=1)
>>> my_site.domain = 'somedomain.com'
>>> my_site.name = 'Some Domain'
>>> my_site.save()
L'altro problema per cui si potrebbe ottenere due e-mail quando il ripristino di esso, è perché che si può avere più nomi utente associati allo stesso indirizzo email. È piuttosto stupido. Questa è la prossima cosa che devo affrontare.
penso si supponga di specificare il nome della vista invece del nome dell'URL. Qualcosa come '{% url 'django.contrib.auth.views.password_reset_confirm' ...%}' –
Sì, ha funzionato. Strano, perché l'avevo copiato dalla documentazione di Django. Ora ci sono due problemi rimasti, per favore vedi la domanda aggiornata. Grazie – Houman
Cesar, ho risolto gli altri due problemi e ho aggiornato la domanda. Se desideri inserire il tuo commento come risposta, selezionalo come risposta. Grazie – Houman