2

我正在尝试设置我的 django-registration 激活工作流程,以便当用户点击激活链接时,它使用 django 消息框架将他们重定向到登录页面,并带有一条漂亮的小消息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 回答