2

次のようなパスワードを変更するための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ハンドラー内からそれを実行するためのショートカット方法があるかどうか知りたいです。

ビューに関して現在のrequestオブジェクトextra_contextを渡すように現在のURLハンドラーを変更する方法を教えてください。auth_views.password_change

4

1 に答える 1

2

request.user通常、これはurlconfで行いますが、urls.pyにはリクエストへのアクセス権がないため、extra_contextを渡すことはできません。

ただしpassword_change、すべての組み込みビューと同様に、を使用RequestContextしてテンプレートをレンダリングします。つまり、userオブジェクトが自動的に存在します( settings.pydjango.contrib.auth.context_processors.authのリストから削除しない限り、によって渡さCONTEXT_PROCESSORSれます)。

于 2011-10-28T09:58:11.960 に答える