Як перадаць extra_context ў auth_views.password_change ў апрацоўшчыку URL

У мяне ёсць апрацоўшчык URL для змены пароля, напрыклад, наступным чынам:

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

Усё добра, і мой шаблон загружаецца, і змяненне пароля працуе, як чакалася. Тым не менш, мой шаблон павінен атрымаць доступ да request.user . <Код> Запыт аб'ект не перадаецца па змаўчанні ў шаблоне з дапамогай убудаванага ў auth_views.password_change гледжання.

Я ведаю, што auth_views.password_change Погляд можна перадаць у дадатковы кантэкст, які будзе праходзіць па шаблоне. Я проста не ведаю, як зрабіць гэта ў маім апрацоўшчыку URL.

Я ведаю, што я мог бы проста напісаць яшчэ адзін від, які абцякае auth_views.password_change , але мне цікава, калі ёсць ярлык спосаб зрабіць гэта з апрацоўшчыка URL.

Ці можаце вы паказаць мне, як змяніць свой бягучы апрацоўшчык URL перадаць у бягучым запыт аб'ект як extra_context у auth_views.password_change выгляд?

2
Я - таксама - я ў пошуках прыкладу. (Я выкарыстоўваю v0.7) Пасля прачытання дакументацыі і гледзячы на ​​код, здаецца, што можна было б дадаць «extra_context» ў слоўніку перадаецца ў URL() выкліку, пахаванага ў registration.urls. Калі я не павінен змяніць размеркаваны зыходны код, каб зрабіць вышэй, гэта, здаецца, я застаўся толькі са трансплантантам ў маім urls.py: (г «^ рахунку /», ўключаюць у сябе ( «registration.urls») ). Але як я пераходжу ў «extra_context» ёсць? Ці ёсць «ўключаюць у сябе ()» ёсць сінтаксіс, каб зрабіць гэта? Я не змог знайсці яго.
дададзена аўтар Dan H, крыніца

1 адказы

Звычайна вы робіце гэта ў прывязак - але вы не можаце перадаць request.user у extra_context, таму што urls.py не мае доступу да запыту.

Але password_change , як і ўсе убудаваныя ў паданнях, выкарыстоўвае RequestContext , каб зрабіць шаблон - гэта азначае, што існуе карыстальнік аб'екта аўтаматычна (прыняты у па django.contrib.auth.context_processors.auth , калі вы не выдалілі яго з CONTEXT_PROCESSORS спіс у settings.py).

2
дададзена