以前我一直在使用一些旧版本的django-registration,现在似乎已被弃用了。因为我的服务器不允许我安装python插件,所以我需要使用'registration'作为单独的django应用程序。现在我的问题是我需要修改什么才能让注册作为django-app运行?我可以将'注册'复制到我的django项目目录中,在设置中添加它应该有效吗?以前没有定义“后端”这样的东西,现在后端 init 文件带有函数get_backend,它以'path'作为参数。我想这条路径是通过网址发送的吗?
url(r'^activate/(?P<activation_key>\w+)/$',
activate,
{'backend': 'registration.backends.default.DefaultBackend'},
name='registration_activate'),
在这个目录中,还有带有DefaultBackend类的 init 文件,类激活并注册。
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是空的所以为什么要打扰?
答案 0 :(得分:1)
这种情况要比实现目标简单得多。 Django应用程序(如注册)只是普通的Python包,可以这样导入。这意味着注册可以在你的python路径中的任何地方生活。通常,最简单的地方是在根项目目录中。
后端参数只需要一个python导入路径。添加了这个参数,以便人们可以扩展Django-Registration以使用自定义后端,如果他们愿意的话。
如果您将注册目录放在python路径上,那么现有的字符串应该可以正常工作。
答案 1 :(得分:0)
引用:
"Because my server does not allow me to install python plugins I need to
use 'registration' as separate django application."
这是因为您没有root访问权限吗?您是否尝试使用virtualenv(链接到我自己的博客)来创建您自己的(完全可写的)Python / Django安装?或者,在您具有写访问权限的位置创建可写目录,在那里安装django-registration并将PYTHON_PATH指向该位置?
国际海事组织,似乎你放弃了“安装django-registration”选项并转移到更复杂的“在不同的服务器上运行”一个。