Django App Engine:AttributeError:'AnonymousUser'对象没有属性'后端'

spe*_*ane 7 python django google-app-engine django-nonrel djangoappengine

我正在使用djangoappengine.当我尝试创建新用户,验证该用户并将其登录时,我收到以下错误AttributeError: 'AnonymousUser' object has no attribute 'backend'.

我的代码很简单,看起来像:

user = User.objects.create_user(username, username, password)
user.set_password(password)
user.save()

user = django.contrib.auth.authenticate(username=username, password=password)
django.contrib.auth.login(request, user)
Run Code Online (Sandbox Code Playgroud)

我只在生产中遇到以下错误,只是偶尔出现:

web req_create: 'AnonymousUser' object has no attribute 'backend'
Traceback (most recent call last):
  File "/base/data/home/apps/s~XXXXX/1.356802202883392818/XXXX/XXX.py", line 332, in req_create
    login(request, user)
  File "/base/data/home/apps/s~XXXXX/1.356802202883392818/django/contrib/auth/__init__.py", line 82, in login
    request.session[BACKEND_SESSION_KEY] = user.backend
AttributeError: 'AnonymousUser' object has no attribute 'backend'
Run Code Online (Sandbox Code Playgroud)

我不确定,但我有一种不好的感觉,这个异常是由于高复制数据存储及其最终的一致性.我认为这样authenticate()可以保存用户值并login()进行查询,但用户值尚未传播到HRDS中.任何人都可以证实这是真的吗?如果是这样,它将如何修复?

Nil*_*esh 3

当您保存用户时,它不会自动激活。请检查AnonymousUser的链接,其中说明了您的用户如何成为AnonymousUser

因此,您必须将所有可能使您的用户设置为 的项目AnonymousUser。验证之前请检查user.is_anonymous()