我按照 django 教程所说的做了,但我仍然无法使用我创建的用户登录 localhost:8000/admin/。我检查了数据库,没有用户名'admin'。我通过以下方式创建了用户:
from django.contrib.auth.models import User
u = User.objects.get(username__exact='john')
u.set_password('new password')
u.save()
任何人都可以帮助我吗?请。
syncdb 通常创建/更新数据库,因此从您的声明中:
我检查数据库,没有用户名'admin'
我知道您一定以某种方式创建了您的数据库。第一次运行 syncdb 时,系统会要求您创建一个超级用户。在那里,您应该插入您的凭据。
但是,如果您丢失了这部分,您可以稍后使用 django shell:
python manage.py shell
这将打开一个加载了 django 环境的 python shell。在该 shell 中创建管理员用户,如下所示:
from django.contrib.auth.models import User
u = User(username='admin', is_superuser=True, is_staff=True)
u.set_password('admin')
u.save()
请注意,*is_staff* 必须为真,您的新用户才能登录管理区域,*is_superuser* 也必须为真,用户才能拥有所有权限。
然后转到 localhost:8000/admin/ 并使用新的“管理员”用户登录。
从教程的第二部分开始,您需要执行以下三件事来启用管理站点。你有没有想念他们中的任何一个?
在 INSTALLED_APPS 设置中取消注释“django.contrib.admin”。
运行 python manage.py syncdb。由于您已将新应用程序添加到 INSTALLED_APPS,因此需要更新数据库表。
编辑您的 mysite/urls.py 文件并取消注释引用管理员的行 - 总共有三行需要取消注释。
我建议你再次完成整个过程,因为你显然错过了一些东西。只是从头开始。你会看到你错过了什么。
PS 如果您有用户名 john,则不能有与用户名 admin 相同的用户。
我想你可能已经忽略了运行python manage.py syncdb