以前我一直在使用一些旧版本的 django-registration,现在似乎已弃用。因为我的服务器不允许我安装 python 插件,所以我需要使用“注册”作为单独的 django 应用程序。现在我的问题是我需要修改什么才能让注册作为 django-app 运行?我可以将“注册”复制到我的 django 项目目录中,将其添加到设置中并且它应该可以工作吗?以前没有定义“后端”之类的东西,现在带有函数 get_backend 的后端初始化文件,它以“路径”作为参数。我猜这条路径是通过 url 发送的,对吗?
url(r'^activate/(?P<activation_key>\w+)/$',
activate,
{'backend': 'registration.backends.default.DefaultBackend'},
name='registration_activate'),
在这个目录中还有一个带有 DefaultBackend 类的初始化文件,其中类激活和注册。
http://paste.pocoo.org/show/225790/
他们都使用信号。我需要以任何方式打扰这些信号吗?(我仍然不太明白它们的用途)。最后一件事。之前注册后,它会以这种方式重定向给定的success_url或设置模板:
return HttpResponseRedirect(success_url or reverse('registration_complete'))
现在负责这个的代码看起来:
if success_url is None:
to, args, kwargs = backend.post_registration_redirect(request, new_user)
return redirect(to, *args, **kwargs)
else:
return redirect(success_url)
和 post_registration_redirect :
def post_registration_redirect(self, request, user):
"""
Return the name of the URL to redirect to after successful
user registration.
"""
return ('registration_complete', (), {})
那么,如果它仍然只是简单地重定向到 'registration_complete' ,为什么会以这种方式改变呢?args 和 kwargs 是空的,为什么还要麻烦呢?