我刚刚开始使用django-registration。我有两个问题:
如何阻止登录用户进入注册页面?
激活后如何自动登录用户?
我不想更改应用程序本身的任何代码。
对于问题2,我已经阅读了文档,其中写着“编写一个侦听相应信号的函数;您的函数应该将用户的后端属性设置为正确的身份验证后端,然后调用django。 contrib.auth.login()用来登录用户。“我不太了解django以了解这意味着什么或如何实现这一点。你们能帮助/指出我正确的方向吗?
编辑:
尝试做一些信号,但还没有用,不确定是什么问题:
def loginActivationCallback(sender, user, request, **kwargs):
print user
print "registered"
user_registered.connect(loginActivationCallback)
另外因为我正在使用Django 1.5,我没有做pip install django-registration(不完全支持1.5),而是将注册文件夹复制到我的项目中。不确定这是否会影响信号。
答案 0 :(得分:3)
您可以做的就是检查您的注册视图
if request.user.is_authenticated:
#redirect user to the profile page
return HttpResponseRedirect('/profile/')
答案 1 :(得分:0)
from registration.signals import user_activated
def login_user(sender, user, request, **kwargs):
user.backend='django.contrib.auth.backends.ModelBackend'
login(request,user)
user_activated.connect(login_user)