Django-Registration:如何防止登录用户注册?

时间:2013-03-07 04:29:01

标签: python django django-registration

我刚刚开始使用django-registration。我有两个问题:

  1. 如何阻止登录用户进入注册页面?

  2. 激活后如何自动登录用户?

  3. 我不想更改应用程序本身的任何代码。

    对于问题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),而是将注册文件夹复制到我的项目中。不确定这是否会影响信号。

2 个答案:

答案 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)