Py学习  »  Django

如何在Django注册后自动登录?

Ryan Oh • 4 年前 • 631 次点击  

所以,我试图让用户一注册就自动登录。这是我的注册功能。

def register(response):
    if response.method == 'POST':
        form = RegisterForm(response.POST)
        if form.is_valid:
            form.save()

        return redirect('/main/inputuserinfo')
    else:
        form = RegisterForm()

    return render(response, 'register/register.html', {'form' : form}) 

如前所述,我想在用户注册后立即登录,然后将其重定向到“/main/inputuserinfo”。

我非常感谢你的帮助。:)

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/56398
 
631 次点击  
文章 [ 3 ]  |  最新文章 4 年前
ASHUTOSH ASHIRBAD TRIPATHY
Reply   •   1 楼
ASHUTOSH ASHIRBAD TRIPATHY    4 年前
def register(response):
        if response.method == 'POST':
                form = RegisterForm(response.POST)
                if form.is_valid:
                form.save()
                request.session['user_id'] =   form.cleaned_data.get("id")
                 return redirect('/main/inputuserinfo')
        else:
               form = RegisterForm()

               return render(response, 'register/register.html', {'form' : form}) ```
Pruthvi Barot
Reply   •   2 楼
Pruthvi Barot    4 年前
from django.contrib.auth import login,authenticate

def signup(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password1')
            user = authenticate(username=username,password=raw_password)
            login(request,user)
            return redirect(reverse('index'))
    else:
        form = SignUpForm()
    return render(request,'signup.html',{'form':form})

您可以使用authenticate和login方法来完成此操作

arjun
Reply   •   3 楼
arjun    4 年前

您可以这样验证新注册的用户

from django.contrib.auth import login, authenticate

if response.method == 'POST':
        form = RegisterForm(response.POST)
        if form.is_valid:
            form.save()
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password1')
            user =  authenticate(request,username=username, password=password)
            if user:
                login(request, user)
                return redirect..