2

ユーザーがアクティベーションリンクをクリックすると、djangoメッセージフレームワークを使用して素敵な小さなメッセージでログインページにリダイレクトされるように、django-registrationアクティベーションワークフローをセットアップしようとしていますdjango.contrib.messages

success_url現在、次のパラメーターを使用して、ユーザーをホームページに戻すことができました。

 url(r'activate/(?P<activation_key>\w+)/$',
    activate,
    {'backend': 'registration.backends.default.DefaultBackend', 'success_url':'/'},
        name='registration_activate',
    ),

'/'ホームログインビューはどこにありますか。途中で成功メッセージを設定する必要があります...おそらくextra_contextフィールドを使用していますか?

4

2 に答える 2

4

Django-registration はシグナルを使用していくつかのポイントをフックしています。あなたの場合、それは次のようなものでなければなりません:

from registration import signals
def register_handler(request, **kwargs):
    messages.success(request, 'Thank you!')
signals.user_registered.connect(register_handler)
于 2012-04-28T04:50:27.653 に答える
0

ilvarの応答はおそらくそれを行うためのより良い方法ですが、私はdjango-registrationビューの周りにビューをラップすることでそれを機能させることもできました.

私はurls.py今、私の新しい見方を指し示しています

url(r'^accounts/activate/(?P<activation_key>\w+)/$',
        Custom_Activation_View.as_view(),
        {'backend': 'registration.backends.default.DefaultBackend'},
        name='registration_activate'),

そして私のviews.pyファイルで:

    class Custom_Activation_View(TemplateView):
        template_name='home.html'

        def get(self, request, backend, success_url=None, extra_context=None, **kwargs):
            messages.success(self.request, 'Activation complete, please login below')

            return activate(self.request, backend, template_name=self.template_name, success_url='/', extra_context=None, **kwargs)
于 2012-04-28T17:13:32.820 に答える