我已经建立了一个带有管理页面的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等以确保它们都设置正确。
据我所知,管理页面工作完美,除了他们从来没有让任何人登录。
有什么想法是怎么回事,或其他方法来尝试调试?我真的被这个错误困惑。
PS:如果有必要,我将使用South进行DB迁移,使用django-social-auth进行FB登录,并使用单独的local_settings.py进行生产和开发(我已经检查了它们--不存在冲突)。
7条答案
按热度按时间ki0zmccv1#
此问题可能与身份验证后端有关。请检查AUTHENTICATION_BACKENDS参数的设置文件。
尝试以下值:
更多关于Django官方文档的信息
qlfbtfca2#
试试这个;在tests.py:
然后用
python manage.py test <your_app_name>.AuthTestCase
运行测试,如果通过了,说明系统在工作,也许可以查看用户名和密码,以确保它们是可接受的。rfbsl7qr3#
我遇到了同样的问题,但是设置文件上的AUTHENTICATION_BACKENDS标志对我来说不是问题。使用Django Rest Framework,我修改了密码,没有调用set_password,因此绕过了哈希密码。这就是为什么显示无效登录的原因。
我能够通过运行简单测试来检测这个问题,以便通过类似的测试来测试用户创建:
还值得一提的是,我创建了一个名为UserProfile的自定义用户
qzwqbdag4#
您是否使用了自定义用户模型,但忘记将其添加到
settings.py
中?这就是我刚刚遇到的情况。i34xakig5#
您可以执行以下操作:
然后您可以再次登录!
jhdbpxl96#
答案是:
tv6aics17#
您只需要删除db.sqlite3并再次迁移(python manage.py migrate),然后python manage.py createsuperuser -〉现在再次创建帐户