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_reset
mengambil 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_reset
akan 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_reset
tampilan tersebut berjalan dengan sendirinya. Jika Anda ingin melihat konteks apa yang Anda miliki, Anda dapat memicu TemplateSyntax
kesalahan 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_name
argumen kata kunci ke tampilan saat dipanggil. Anda dapat memberikan argumen kata kunci ke tampilan dengan memasukkan kamus sebagai anggota ketiga tupel pola URL.
context
hal yang benar yang Anda cari!