【发布时间】:2012-02-09 07:12:21
【问题描述】:
我已经建立了一个带有管理页面的 django 项目。它在开发的前几周工作得很好,有一段时间没有使用管理页面,当我回到它时,管理页面坏了。无论我做什么,它都不允许我登录。
输入用户名和密码后,管理页面总是显示:
Please enter a correct username and password. Note that both fields are case-sensitive.
我检查了数据库:超级用户存在并且 is_active、is_superuser 和 is_staff 都是 True。我已经使用 shell 来确保密码正确。我已经多次刷新、删除和重新创建数据库,以确保没有错误。我还仔细检查了中间件、url、INSTALLED_APPS 等,以确保它们都设置正确。
据我所知,管理页面运行良好,只是它们从不让任何人登录。
有什么想法,或者尝试调试的其他方法吗?这个bug我真的很困惑。
PS:如果重要的话,我使用 South 进行数据库迁移,使用 django-social-auth 进行 FB 登录,并使用单独的 local_settings.py 进行生产和开发(我已经检查了它们 - 冲突不是'那里。)
【问题讨论】:
-
如果您使用 auth.views.login() 视图创建自己的登录页面会发生什么?
-
看起来几乎相同的问题:“您的用户名和密码不匹配。请重试。”
-
为了让 django-social-auth 用于 FB 登录,您是否修改了任何可能改变系统运行 authenticate() 和 login() 方式的代码?此外,在开发的几周内,您是否删除并重新创建了项目,使得 settings.py 的 SECRET_KEY = '...' 发生了变化?我认为这个密钥是用来解密密码的,但我并不肯定。
-
我不知道。我添加了一个视图和一个模型,以及 settings.py 中的一些条目,但我不记得其他任何内容了。
-
在 SECRET_KEY... 是的,我切换了 repos,当我这样做时,我再次运行 django-admin startproject。所以我的密码现在散列不同了。但我会认为创建一个新的超级用户和/或完全刷新和重新创建数据库会解决这个问题。顺便说一句,我在开发中使用 sqlite,以防这很重要。
标签: django django-admin