URLハンドラのauth_views.password_changeにextra_contextを渡す方法

私はこのようなパスワードを変更するための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 として auth_views.password_change ビューに渡すように現在のURLハンドラを変更する方法を教えてください。

2
私も例を探しています。 (私はv0.7を使用しています)ドキュメントを読んでコードを調べると、登録簿に埋め込まれたurl()呼び出しに渡された辞書に 'extra_context'が追加されたようです。上記のように分散ソースコードを修正する予定がない場合は、私自身がurls.pyに移植しているようです:(r '^ accounts /'、include( 'registration.urls') )。しかし、私はそこで "extra_context"をどのように渡すのですか? "include()"にはこれを行うための構文がありますか?私はそれを見つけることができませんでした。
追加された 著者 Dan H,

1 答え

通常はurlconfで行いますが、urls.pyは要求にアクセスできないため、 request.user をextra_contextに渡すことはできません。

しかし、 password_change はすべてのビルトインビューと同様に RequestContext を使ってテンプレートをレンダリングします。つまり、 user あなたがsettings.pyの CONTEXT_PROCESSORS リストからそれを削除していない限り、 django.contrib.auth.context_processors.auth

2
追加された