部署后使用旧设置的Google App Engine(来自settings.py的AUTHENTICATION_BACKENDS)

时间:2015-08-29 16:30:40

标签: python django google-app-engine deployment django-settings

我有一个djangoappengine项目,我的最新部署返回了以下错误:

Error importing authentication backend myapp.dashboard.authentication.DashboardAuthentication:
"No module named authentication"

该项目最初使用此身份验证后端,但我已更新它以从设置中删除它并定义不同的身份验证后端。

旧设置:

AUTHENTICATION_BACKENDS = (
    'myapp.dashboard.authentication.DashboardAuthentication',
    'django.contrib.auth.backends.ModelBackend' 
)

新设置:

AUTHENTICATION_BACKENDS = (
    'new_auth_package.authentication.DashboardAuthentication',
    'django.contrib.auth.backends.ModelBackend'
)

文件参考

我相信我的settings.py文件已成功部署及其更改,因为如果我将调试更改为False并重新部署,我会得到更加模糊的500错误。

我在整个项目中搜索过我可能引用旧的auth后端的任何地方,而不是在settings.py中,而且没有任何内容。

有可能appengine缓存对我的身份验证后端的引用,无论settings.py说什么?

版本

我尝试部署版本2并更新我的默认版本以指向它,但问题仍然存在。

奇怪的是,如果我在1.myapp.appspot.com和2.myapp.appspot.com上访问应用程序,它会对两个版本使用正确的身份验证。但是,无论我将哪个版本设置为默认值,浏览到默认的myapp.appspot.com仍会出现此错误。

在我不小心告诉appengine缓存内容的地方,我有什么遗漏吗?或者有什么方法可以强制重置以摆脱该引用?

1 个答案:

答案 0 :(得分:0)

用于登录的身份验证后端存储在会话中。因此,如果您登录,然后将其删除并部署,系统将在尝试根据您的会话找到您的用户时出错。

解决方案:清除您的会话。