2014-03-27 63 views
0

使用Django的CreateView我想在用户注册时登录。我发现最好的地方是通过重写get_success_url方法。Django CreateView自动登录

这是我曾尝试:

def get_success_url(self): 
     user = self.form.get_user() 
     login(self.request, user) 

但看来,自己并没有在它的用户,我得到的错误:

object has no attribute 'form' 

回答

1

在该负责视图注册如果注册成功,请添加以下代码:

from django.contrib.auth import authenticate, login, logout 
user = authenticate(username=request.POST['username'], password=request.POST['password']) 
if user is not None: 
    if user.is_active: 
     login(request, user) 
     redirect('logged_in_url') 
    else: 
     redirect('user_not_active_url') 
else: 
    redirect('bad_username_or_password_url')