Si vous regardez les sources de django.contrib.auth.views.password_reset, vous verrez qu'il utilise RequestContext
. Le résultat est que vous pouvez utiliser des processeurs de contexte pour modifier le contexte, ce qui peut vous permettre d'injecter les informations dont vous avez besoin.
La liste b a une bonne introduction aux processeurs de contexte .
Edit (il semble que je ne sache pas quelle était la question réelle):
Vous remarquerez que password_reset
prend un paramètre nommé appelé 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):
Vérifier password_reset pour plus d'informations.
... ainsi, avec un urls.py comme:
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
sera appelé pour les URL correspondant '/accounts/password/reset'
à l'argument mot-clé template_name = 'my_templates/password_reset.html'
.
Sinon, vous n'avez pas besoin de fournir de contexte car la password_reset
vue prend soin d'elle-même. Si vous voulez voir le contexte dont vous disposez, vous pouvez déclencher une TemplateSyntax
erreur et parcourir la trace de la pile pour trouver le cadre avec une variable locale nommée context
. Si vous souhaitez modifier le contexte, ce que j'ai dit ci-dessus à propos des processeurs de contexte est probablement la voie à suivre.
En résumé: que devez-vous faire pour utiliser votre propre modèle? Fournissez un template_name
argument de mot - clé à la vue lorsqu'elle est appelée. Vous pouvez fournir des arguments de mot-clé aux vues en incluant un dictionnaire comme troisième membre d'un tuple de modèle d'URL.
context
soit la bonne chose que vous recherchez!