将success_url传递给激活

Dar*_*rek 3 python django django-registration

文件说:

 ``success_url``
    The name of a URL pattern to redirect to on successful
    acivation. This is optional; if not specified, this will be
    obtained by calling the backend's
    ``post_activation_redirect()`` method.
Run Code Online (Sandbox Code Playgroud)

我该怎么做 ?

Ben*_*end 7

你可以在你的urls.py身上做到,例如:

url(r'^account/activate/(?P<activation_key>\w+)/$', 'registration.views.activate', {'success_url': 'registration_activation_complete'}, name='registration_activate'),
url(r'^account/activate/success/$', direct_to_template, {'template': 'registration/activation_complete.html', name='registration_activation_complete'),
Run Code Online (Sandbox Code Playgroud)

另一种方法是通过继承默认后端来创建自己的后端(比听起来更简单):

from registration.backends.default import DefaultBackend

class MyRegistrationBackend(DefaultBackend):
    def post_activation_redirect(self, request, user):
        # return your URL here
Run Code Online (Sandbox Code Playgroud)

最简单的解决方案是只指定django-registration应该使用的URL模式registration_activation_complete.请参阅Django文档中的命名URL模式.