0

我需要知道如何将 a 传递success_url给 django-registration-1.0 中使用基于类的视图的简单后端。

在1.0之前我曾经有

from registration.views import register

url(r'^accounts/register/$', register, {'backend': 
'registration.backends.default.DefaultBackend','form_class': RegistrationForm},     
 name='registration_register'),

我把它改成了这样

from registration.backends.simple.views import RegistrationView

url(r'^accounts/register/$',  
RegistrationView.as_view(success_url=settings.LOGIN_REDIRECT_URL), 
name='registration_register')

后端似乎工作,但success_url没有从 URLConf 中获取。

我该如何解决?

更新:

我已经通过自己RegistrationView对 Simple 进行子类化RegistrationView并至少将其重写success_url为临时解决方案来实现,直到我找到更好的解决方案

from registration.backends.simple.views import RegistrationView as SimpleRegistrationView

class RegistrationView(SimpleRegistrationView):
    def get_success_url(self, request, user):
        return (settings.LOGIN_REDIRECT_URL, (), {})
4

1 回答 1

1

编码...

url(r'^accounts/register/$',
    RegistrationView.as_view(success_url=settings.LOGIN_REDIRECT_URL),
    name='registration_register')

...在技术上是正确的,但看起来 django-registration 库中有一个错误,这意味着它会有效地忽略这个值,所以get_success_url()如果你真的想要一些有用的东西,你必须重写该方法。

于 2013-06-18T11:06:58.110 回答