实现 DRF authtoken 应用程序后,我删除了我以前的超级用户(因为它没有 auth 令牌)并创建了一个新用户。查看数据库,我看到新的超级用户在 authtoken_token 表中有一个条目。它还将 is_admin、is_staff 和 is_superuser 设置为 True。is_active 设置为 False,但在以前的超级用户中也设置为 False,登录 admin 没有问题。
当我使用 is_active=False 在管理页面中输入凭据时,它会显示:
“请为员工帐户输入正确的电子邮件和密码。请注意,这两个字段可能区分大小写。”
在设置 is_active=True 之前,我尝试过其他 SO 问题的一些答案:
- 我确定我没有设置 SESSION_COOKIE_SECURE = True。无论如何,我没有在开发环境中使用此设置。
- 当我检查数据库时,django_session 表就在那里。当我尝试进行身份验证时,我没有看到正在创建新条目。
- 我确实通过 python manage.py createsuperuser 命令创建了我的超级用户,就像我之前所做的一样。
- 我还尝试通过 python manage.py changepassword 更改超级用户密码。
- 我的数据库已同步,我在删除并创建新的超级用户后检查了表,并且它们已正确更新。
这些步骤并没有改变任何东西。然后我为新的超级用户设置了 is_active=True,我终于可以登录了。但为什么?在 DRF 令牌身份验证之前,我的非活动超级用户可以登录到管理员。现在,它不能,它应该是活跃的登录。这与令牌身份验证有什么关系?(所以我的问题解决了,但我想知道 django 和 drf 如何在门后工作。)