我正在尝试使用 mod_python 将 Django 应用程序部署到基于 Apache2 的服务器。我已经正确设置了处理程序并进行了配置以使 mod_python 适用于我的项目。我的项目实现了一个自定义身份验证后端来将我的用户连接到 Twitter,并且我的后端实现已启用:
myproject
|- backends/
目录。一切似乎都工作正常,我的页面加载并且我可以正确进行读/写操作。但每当我尝试使用 Twitter 帐户登录时,应用程序都会引发异常,告诉我:
导入身份验证后端 backends.twitteroauth 时出错:“没有名为 backends.twitteroauth 的模块”
在我的 settings.py 中,我将后端注册为
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'myproject.backends.twitteroauth.TwitterBackend',
)
问题是什么?
最佳答案
删除数据库解决了我的问题。据我猜测,如果用户登录,他相应的登录后端将作为 session 变量保存在数据库中。我的 settings.py 文件是
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'backends.twitteroauth.TwitterBackend',
)
在我做出更正之前。更改 settings.py 并重新启动应用程序是不够的。您还必须从数据库中删除与 session 相关的记录。
关于python - Apache 无法识别 Django 自定义身份验证后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2056384/