我使用以下代码创建一个新用户:
form = UserCreationForm(request.POST)
if form.is_valid():
username = form.clean_username()
password = form.clean_password2()
new_user = form.save()
以上工作正常。接下来我希望登录用户并重定向到主页如下
user = authenticate(username=username, password=password)
auth.login(request, user)
return HttpResponseRedirect("/dashboard/home")
我收到以下错误消息:
'AnonymousUser' object has no attribute 'backend'
一点调试显示“用户”是无。但是,如果我尝试登录刚刚创建的用户,它可以工作,即用户已创建但
user = authenticate(username=username, password=password)
没有在我的注册函数中返回用户(完全相同的代码随后在我的登录函数中起作用)。追溯有以下内容:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py in get_response
response = callback(request, *callback_args, **callback_kwargs)
它提供了一个小线索。是否发生了某种回调
user = authenticate(username=username, password=password)
在注册期间实际上是在创建用户之前调用的?如何在注册后立即对用户进行身份验证和重定向?