Jeśli spojrzysz na źródła dla django.contrib.auth.views.password_reset , zobaczysz, że używa RequestContext. W rezultacie możesz użyć procesorów kontekstu, aby zmodyfikować kontekst, co może pozwolić na wstrzyknięcie potrzebnych informacji.
Lista b ma dobre wprowadzenie do procesorów kontekstu .
Edytuj (wydaje mi się, że byłem zdezorientowany, jakie było rzeczywiste pytanie):
Zauważysz, że password_resetprzyjmuje nazwany parametr o nazwie 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):
Sprawdź password_reset, aby uzyskać więcej informacji.
... a więc z urls.py jak:
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_resetbędzie wywoływana w przypadku adresów URL pasujących '/accounts/password/reset'do argumentu słowa kluczowego template_name = 'my_templates/password_reset.html'.
W przeciwnym razie nie musisz podawać żadnego kontekstu, ponieważ password_resetwidok sam się o siebie troszczy. Jeśli chcesz zobaczyć, jaki kontekst masz dostępny, możesz wywołać TemplateSyntaxbłąd i przejrzeć ślad stosu, aby znaleźć ramkę z lokalną zmienną o nazwie context. Jeśli chcesz zmodyfikować kontekst, to prawdopodobnie najlepsze jest to, co powiedziałem powyżej o procesorach kontekstu.
Podsumowując: co musisz zrobić, aby użyć własnego szablonu? Podaj template_nameargument słowa kluczowego do widoku, gdy jest on wywoływany. Możesz dostarczać argumenty słów kluczowych do widoków, dołączając słownik jako trzeci element członkowski krotki wzorca adresu URL.
contextjest to właściwe rozwiązanie!