我正在尝试让用户在注册后自动登录。但是,用户似乎仅在呈现下一个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)