我正在尝试使用mod_python将我的Django应用程序部署到基于Apache2的服务器上。我已经设置好处理程序并进行配置以使mod_python与我的项目一起工作。我的项目实现了一个自定义身份验证后端,将我的用户连接到twitter,我的后端实现已经开启:
myproject
|- backends/
directory.Everything似乎工作正常,我的页面加载,我可以正确地进行读/写操作。但每当我尝试使用我的Twitter帐户登录时,应用程序都会触发一个异常告诉我:
导入身份验证后端后端错误.twitteroauth:“没有名为backends.twitteroauth的模块”
在我的settings.py中,我正在注册我的后端
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'myproject.backends.twitteroauth.TwitterBackend',
)
有什么问题?
答案 0 :(得分:2)
问题是python找不到模块twitteroauth
。文件TwitterBackend
的名称是什么?另外,请确保__init__.py
中有backends
个文件将其标记为包。
修改强>
如果你运行shell
会发生什么python manage.py shell
并尝试将其导入?
from myproject.backends.twitteroauth import TwitterBackend
正如其他任何工作正常,我猜myproject
在你的python路径中。
答案 1 :(得分:2)
删除数据库解决了我的问题。据我所知,如果用户被记录,他的相应登录后端将作为会话变量保存在数据库中。我的settings.py文件是
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'backends.twitteroauth.TwitterBackend',
)
在我做出更正之前。更改settings.py并重新启动应用程序是不够的。您还必须从db中删除与会话相关的记录。
答案 2 :(得分:1)
确保后端位于python路径上,文件夹中有 init .py文件。