หากคุณดูแหล่งที่มาของdjango.contrib.auth.views.password_resetคุณจะเห็นว่ามันใช้RequestContext
คุณจะเห็นว่ามันใช้ผลลัพธ์คือคุณสามารถใช้ Context Processors เพื่อปรับเปลี่ยนบริบทซึ่งอาจช่วยให้คุณฉีดข้อมูลที่คุณต้องการได้
B-รายการมีดีรู้เบื้องต้นเกี่ยวกับโปรเซสเซอร์บริบท
แก้ไข (ดูเหมือนฉันจะสับสนว่าคำถามจริงคืออะไร):
คุณจะสังเกตเห็นว่าpassword_reset
ใช้พารามิเตอร์ที่มีชื่อเรียกว่า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):
ตรวจสอบpassword_resetสำหรับข้อมูลเพิ่มเติม
... ดังนั้นด้วย urls.py เช่น:
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
จะถูกเรียกว่าสำหรับ URL ที่ตรงกับการโต้แย้งคำหลัก'/accounts/password/reset'
template_name = 'my_templates/password_reset.html'
มิฉะนั้นคุณไม่จำเป็นต้องระบุบริบทใด ๆ เนื่องจากpassword_reset
มุมมองจะดูแลตัวมันเอง หากคุณต้องการดูบริบทที่คุณมีอยู่คุณสามารถทริกเกอร์TemplateSyntax
ข้อผิดพลาดและดูการติดตามสแต็กค้นหาเฟรมที่มีตัวแปรโลคัลชื่อcontext
ความผิดพลาดและดูผ่านกองติดตามหาเฟรมที่มีตัวแปรท้องถิ่นชื่อหากคุณต้องการแก้ไขบริบทสิ่งที่ฉันได้กล่าวไว้ข้างต้นเกี่ยวกับตัวประมวลผลบริบทอาจเป็นหนทางไป
โดยสรุป: คุณต้องทำอะไรบ้างในการใช้เทมเพลตของคุณเอง ระบุtemplate_name
อาร์กิวเมนต์คำหลักให้กับมุมมองเมื่อถูกเรียกใช้ คุณสามารถจัดหาอาร์กิวเมนต์คำหลักให้กับมุมมองโดยรวมพจนานุกรมเป็นสมาชิกตัวที่สามของทูเพิลรูปแบบ URL
context
ใช่สิ่งที่คุณกำลังมองหา!