社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

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

Ryan Oh • 5 年前 • 1462 次点击  

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

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
 
1462 次点击  
文章 [ 3 ]  |  最新文章 5 年前
ASHUTOSH ASHIRBAD TRIPATHY
Reply   •   1 楼
ASHUTOSH ASHIRBAD TRIPATHY    5 年前
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    5 年前
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    5 年前

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

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..