在我继续之前,我知道这是一个常见问题,但是我已经搜索了与此相关的最重要的问题,但是似乎都没有帮助。
以下情况:https://docs.djangoproject.com/en/2.2/intro/tutorial02/
我做了什么:
py manage.py createsuperuser
创建的用户
我已确认该用户是具有以下内容的超级用户
from django.contrib.auth.models import User
active_staff = User.objects.filter(is_active=True, is_staff=True)
这将列出超级用户
尽管如此,当我执行以下操作时:
u =用户(用户名=“ admin”) u.is_staff 假 u.is_superuser 错误
这是为什么?
然后我也手动将其设置为true,save()
,然后检查,它现在为True。尝试登录,不起作用。重新启动shell并检查,它恢复为false。
我在这里尝试了接受的答案:Can't login to django admin after creating a super user with a custom user model
此:Admin page on django is broken
没有人帮助。
如果我需要从Djnago应用程序中复制/粘贴任何内容以提供帮助,请告诉我。我是Python和Django的新手,所以我不确定要在此问题中添加什么内容。
答案 0 :(得分:2)
要拥有一个超级用户,您只需要使用manage.py createsuperuser命令,并且使用此命令,您正在做的事情:
User(is_superuser=True,**kwargs)
那么您能解释一下,当您想登录到管理面板时会看到什么错误吗?
答案 1 :(得分:1)
u = User(username="admin")
这只是初始化一个新的用户对象,而不查询数据库。对于is_staff和超级用户,它将始终返回False,如果它们的默认值是False。尝试使用-
查询数据库u = User.objects.get(username="admin")
检查标志的值。
答案 2 :(得分:1)
好吧,我不确定这是怎么可能的。
我已经成功地在d / programming / mysite目录中创建了应用程序……正在创建文件,迁移等。
我刚刚检查了一下,项目中的应用程序确实在d / programming / django / mysite中...我继续从那里创建了一个用户,并且可以正常工作。
我对这是如何发生的感到有些困惑,但是我确定我在某种程度上和某处都错了