注册后Django自动登录

问题描述 投票:0回答:1

我正在尝试让用户在注册后自动登录。但是,用户似乎仅在呈现下一个html页面的过程中登录(user.is_authenticated在我的模板中返回True),然后在(request.user在我通过下一个通过AJAX调用的方法中返回AnonymousUser之后立即注销)页-移至另一页还可以清楚地表明您已不再登录,因为我的模板呈现了登录名,而不是再次显示了注销链接。如果我改用注释的代码,则authenticate()始终返回NONE。

我在做什么错?

def signup_view(request):
    if request.method == 'POST':
        form = UserSignUpForm(request.POST)
        if form.is_valid():
            user = form.save(commit=False)
            user.is_active = False
            user.save()
            current_site = get_current_site(request)
            send_confirmation_email(user, current_site.domain)
            # user_login = authenticate(username=form.cleaned_data['username'], password=form.cleaned_data['password1'])
            # login(request, user_login)
            login(request, user, backend='django.contrib.auth.backends.ModelBackend')
            args = {'user': user}
            return render(request, 'accounts/signup_success.html', args)
    else:
        form = UserSignUpForm()
    args = {'form': form, 'project_name': settings.PROJECT_NAME}
    return render(request, 'accounts/signup.html', args)
python django
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.