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 llamado template_name
:
def password_reset(request, is_admin_site=False,
template_name='registration/password_reset_form.html',
email_template_name='registration/password_reset_email.html',
password_reset_form=PasswordResetForm,
token_generator=default_token_generator,
post_reset_redirect=None):
Consulte password_reset para obtener más información.
... así, con un urls.py como:
from django.conf.urls.defaults import *
from django.contrib.auth.views import password_reset
urlpatterns = patterns('',
(r'^/accounts/password/reset/$', password_reset, {'template_name': 'my_templates/password_reset.html'}),
...
)
django.contrib.auth.views.password_reset
se llamará para las URL que coincidan '/accounts/password/reset'
con el argumento de palabra clave template_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 un TemplateSyntax
error y buscar en el seguimiento de la pila el marco con una variable local nombrada context
. 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.
context
sea lo correcto que estás buscando!