0

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

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

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

我不喜欢更改应用程序本身的任何代码。

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

4

2 回答 2

3

您可以做的就是检查您的注册视图

 if request.user.is_authenticated:
     #redirect user to the profile page 
     return HttpResponseRedirect('/profile/')
于 2013-03-07T05:01:48.893 回答
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)
于 2013-03-07T05:02:11.030 回答