2

Web サイトでユーザー認証を管理するために django-registration を使用するように切り替えました。以前は、登録ページとログイン ページにビューを使用していたため、コンテキスト パラメーターを指定できました。しかし今では、django-registration がこれを処理してくれるので、これらのページのビューはもうありません。ただし、コンテキスト変数を渡す必要があるため、これを試しました:

urls.py:

import registration
from registration.backends.default.views import RegistrationView
...
(r'^accounts/login/$', 'django.contrib.auth.views.login', { 'extra_context' : {'design_form': True }}),
(r'^accounts/register/$', RegistrationView.as_view(form_class=RegistrationForm), { 'extra_context' : {'design_form': True }}),
(r'^accounts/', include('registration.backends.default.urls')),

「design_form」パラメーターは、アカウント/ログイン/ページでは正しく機能しますが、登録ページには渡されません。登録ページに extra_context を渡すにはどうすればよいですか?

django 1.5 と django-registration 1.0 の使用

4

1 に答える 1

4

RegistrationForm は の子孫でdjango.views.generic.FormViewあり、 の代わりにをオーバーライドdjango.generic.views.Viewして渡します。extra_contentget_context_data

関数ベースの汎用ビューは、extra_contextレンダリング時に追加のアイテムをコンテキストに挿入する方法として引数を提供しました。

クラスベースのビューは、extra_context 引数を提供しません。代わりに、ビューをサブクラス化し、オーバーライドしますget_context_data()

于 2013-11-08T16:50:55.657 に答える