Якщо ви подивитеся на джерела для django.contrib.auth.views.password_reset, ви побачите, що воно використовується RequestContext
. Підсумок полягає в тому, що ви можете використовувати контекстні процесори, щоб змінити контекст, який може дозволяти вводити потрібну вам інформацію.
Список 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):
Перевірте reset_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
це правильна річ, яку ви шукаєте!