Por ejemplo, yo puedo señalar con el url '^/accounts/password/reset/$'
que django.contrib.auth.views.password_reset
con mi plantilla de nombre de archivo en el contexto pero creo necesidad de enviar más información de contexto.
Necesito saber exactamente qué contexto agregar para cada una de las vistas de restablecimiento y cambio de contraseña.
context
sea lo correcto que estás buscando!Respuestas:
Si echa un vistazo a las fuentes de django.contrib.auth.views.password_reset , verá que usa
RequestContext
. El resultado es que puede usar procesadores de contexto para modificar el contexto, lo que puede permitirle inyectar la información que necesita.La lista b tiene una buena introducción a los procesadores de contexto .
Editar (parece que me ha confundido acerca de cuál era la pregunta real):
Notarás que
password_reset
toma un parámetro con nombre llamadotemplate_name
:Consulte password_reset para obtener más información.
... así, con un urls.py como:
django.contrib.auth.views.password_reset
se llamará para las URL que coincidan'/accounts/password/reset'
con el argumento de palabra clavetemplate_name = 'my_templates/password_reset.html'
.De lo contrario, no es necesario que proporcione ningún contexto, ya que la
password_reset
vista se encarga de sí misma. Si desea ver qué contexto tiene disponible, puede activar unTemplateSyntax
error y buscar en el seguimiento de la pila el marco con una variable local nombradacontext
. Si desea modificar el contexto, lo que dije anteriormente sobre los procesadores de contexto es probablemente el camino a seguir.En resumen: ¿qué debe hacer para utilizar su propia plantilla? Proporcione un
template_name
argumento de palabra clave a la vista cuando se la llame. Puede proporcionar argumentos de palabras clave a las vistas incluyendo un diccionario como el tercer miembro de una tupla de patrones de URL.fuente
registration/password_reset_email.html
en realidad contienen elementos HTML como:<div>
,<a>
porque esto sólo envía el textoRecomiendo encarecidamente este artículo.
Solo lo enchufé y funcionó
http://garmoncheg.blogspot.com.au/2012/07/django-resetting-passwords-with.html
fuente
Solo necesita ajustar las funciones existentes y pasar la plantilla que desee. Por ejemplo:
Para ver esto, solo eche un vistazo a la declaración de función de las vistas integradas:
http://code.djangoproject.com/browser/django/trunk/django/contrib/auth/views.py#L74
fuente
Puede hacer lo siguiente:
Explicación:
Cuando se cargan las plantillas, se buscan en su variable INSTALLED_APPS en settings.py. El orden lo dicta el rango de la definición en INSTALLED_APPS, por lo que, dado que su aplicación viene antes que 'django.contrib.auth', se cargó su plantilla (referencia: https://docs.djangoproject.com/en/dev/ref/templates/api /#django.template.loaders.app_directories.Loader ).
Motivación del enfoque:
fuente
Otra solución, quizás más simple, es agregar su directorio de plantillas de reemplazo a la entrada DIRS de la configuración de TEMPLATES en settings.py. (Creo que esta configuración es nueva en Django 1.8. Es posible que se haya llamado TEMPLATE_DIRS en versiones anteriores de Django).
Al igual que:
Luego coloque sus archivos de plantilla de reemplazo debajo
my_app/templates
. Entonces, la plantilla de restablecimiento de contraseña anulada seríamy_app/templates/registration/password_reset_form.html
fuente
La documentación dice que hay sólo una variable de contexto,
form
.Si tiene problemas con el inicio de sesión (que es común), la documentación dice que hay tres variables de contexto:
form
: Un objeto de formulario que representa el formulario de inicio de sesión. Consulte la documentación de formularios para obtener más información sobre los objetos de formulario.next
: La URL a la que se redireccionará después de iniciar sesión correctamente. Esto también puede contener una cadena de consulta.site_name
: El nombre del sitio actual, de acuerdo con la configuración de SITE_ID.fuente
password_reset
vista.Estaba usando estas dos líneas en la URL y la plantilla del administrador, lo que estaba cambiando a mi necesidad
fuente