Jika Anda melihat sumber untuk django.contrib.auth.views.password_reset Anda akan melihat bahwa itu digunakan RequestContext. Hasilnya adalah, Anda dapat menggunakan Prosesor Konteks untuk mengubah konteks yang memungkinkan Anda memasukkan informasi yang Anda butuhkan.
B-list memiliki pengantar yang baik untuk pengolah konteks .
Sunting (Saya sepertinya bingung tentang apa pertanyaan sebenarnya):
Anda akan melihat bahwa password_resetmengambil parameter bernama yang disebut 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):
Periksa password_reset untuk informasi lebih lanjut.
... jadi, dengan urls.py seperti:
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_resetakan dipanggil untuk URL yang cocok '/accounts/password/reset'dengan argumen kata kunci template_name = 'my_templates/password_reset.html'.
Jika tidak, Anda tidak perlu memberikan konteks apa pun karena password_resettampilan tersebut berjalan dengan sendirinya. Jika Anda ingin melihat konteks apa yang Anda miliki, Anda dapat memicu TemplateSyntaxkesalahan dan melihat jejak tumpukan menemukan bingkai dengan variabel lokal bernama context. Jika Anda ingin mengubah konteks, apa yang saya katakan di atas tentang prosesor konteks mungkin adalah cara yang tepat.
Singkatnya: apa yang perlu Anda lakukan untuk menggunakan template Anda sendiri? Berikan template_nameargumen kata kunci ke tampilan saat dipanggil. Anda dapat memberikan argumen kata kunci ke tampilan dengan memasukkan kamus sebagai anggota ketiga tupel pola URL.
contexthal yang benar yang Anda cari!