在部署的app-engine上创建用户并立即进行身份验证失败

时间:2014-01-12 11:02:13

标签: python django google-app-engine django-nonrel

我有一个简单的注册视图,它获取用户的凭据,创建用户并立即签入。这在我的本地开发服务器上完全正常,但在部署时,对authenticate的调用似乎返回{ {1}}。令人讨厌的是,它似乎每次都不会发生。这是我的观看代码:

None

我发现这个other question我认为这是同样的问题,但从来没有经过验证的答案。

我有同样的感觉,这是一个数据库问题,我正在使用High Replication数据存储区并将def register_view( request ): import django.contrib.auth as auth if request.method == 'POST': form = auth.forms.UserCreationForm( request.POST ) if form.is_valid(): username = request.POST.get( 'username', None ) password1 = request.POST.get( 'password1', None ) auth.models.User.objects.create_user( username=username, password=password1 ) user = auth.authenticate( username=username, password=password1 ) if user != None: auth.login(request, user) return HttpResponseRedirect( request.REQUEST.get( 'next', '/' ) ) else: login_form = auth.forms.AuthenticationForm( data= { 'username': username, 'password': password1 } ) return render(request, 'login.html', { 'form': login_form } ) else: return render(request, 'register.html', { 'form': form }) else: form = auth.forms.UserCreationForm( error_class=BlogErrorList ) return render(request, 'register.html', { 'form': form } ) 添加到我的数据库设置中,如here所述,但这没有任何区别。

任何可能导致此问题的想法?

- 编辑 -

我正在使用Django-nonrel 1.4和标准'HIGH_REPLICATION': True系统。 django.contrib.auth模型已创建here,身份验证后端会对用户here进行身份验证。

1 个答案:

答案 0 :(得分:3)

您尚未显示用户的定义方式,以及您的身份验证代码如何找到用户。

如果您没有按键或祖先查询使用,那么您将遇到最终的一致性。

您应该阅读此https://developers.google.com/appengine/docs/python/datastore/structuring_for_strong_consistency