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_reset
przyjmuje 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_reset
bę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_reset
widok sam się o siebie troszczy. Jeśli chcesz zobaczyć, jaki kontekst masz dostępny, możesz wywołać TemplateSyntax
błą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_name
argument 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.
context
jest to właściwe rozwiązanie!