Как передать extra_context в auth_views.password_change в обработчике URL - PullRequest
2 голосов
/ 28 октября 2011

У меня есть обработчик URL для смены паролей, например:

                       url(r'^password/change/$',
                           auth_views.password_change,
                           {'template_name' : 'account/password/password_change_form.html'},
                           name='auth_password_change'),

Все хорошо, мой шаблон загружен, и смена пароля работает, как и ожидалось.Тем не менее, мой шаблон должен иметь доступ request.user.Объект request по умолчанию не передается в шаблон из встроенного представления auth_views.password_change.

Я знаю, что представление auth_views.password_change может быть передано в дополнительном контексте, которое оно передаст шаблону.Я просто не знаю, как это сделать в моем обработчике URL.

Я знаю, что мог бы просто написать другое представление, охватывающее auth_views.password_change, но мне любопытно, есть ли быстрый способ сделать этов обработчике URL.

Можете ли вы показать мне, как изменить мой текущий обработчик URL для передачи текущего объекта request как extra_context представлению auth_views.password_change?

1 Ответ

2 голосов
/ 28 октября 2011

Обычно вы делаете это в urlconf - но вы не можете передать request.user в extra_context, потому что urls.py не имеет доступа к запросу.

Но password_change, как и все встроенныев представлениях использует RequestContext для визуализации шаблона - это означает, что там автоматически существует объект user (переданный django.contrib.auth.context_processors.auth, если вы не удалили его из списка CONTEXT_PROCESSORS в settings.py).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...