Si observa urlpatterns en django.contrib.auth.urls , la URL password_reset_confirm toma uidb64 y token params, lo cual tiene sentido: cuando se hace clic en él, esto identificará al usuario que restablece la contraseña. Sin embargo, la URL rest_password_reset_confirm django-rest-auth no acepta ningún argumento: simplemente va a password/reset/confirm/ . ¿Cómo puede funcionar? Recibo el siguiente error 500 cuando envío mi correo electrónico para restablecer mi contraseña, y no me sorprende, el error tiene sentido:
NoReverseMatch: Reverse for 'password_reset_confirm' with arguments '()' and keyword arguments '{u'uidb64': 'NA', u'token': u'4lj-65cd7b4219c9206126b4'}' not found. Lo que no entiendo es que parece algo tan básico que debo estar haciendo algo mal; de lo contrario, todos los que usan django-rest-auth recibirían este error porque los argumentos claramente faltan en la definición de URL. ¿Alguien más lo ha experimentado y, de ser así, actualizó la URL para solucionarlo?
ACTUALIZACIÓN: parece django-rest-auth , por defecto, simplemente usa la contrib/admin/templates/registration/password_reset_email.html de Django nativo.
Resulta que hay una solución simple de una línea: agregue esto a sus patrones de URL base:
url(r'^', include('django.contrib.auth.urls')),He usado lo siguiente una vez en mi plantilla:
{% url 'django.contrib.auth.views.password_reset_confirm' uidb64=uid token=token %}
Y funciona bien. ¿Puede mostrar la estructura de inclusión de su plantilla?