如何在Django 1.9.6中创建超级用户账户

32

我正在阅读一本有关Django的书籍(《学习Django Web开发》作者为Sanjeev Jaiswal和Ratan Kumar),但是这本书是基于早期版本的Django(在1.9版本之前)。为了将数据库填充表格,这本书使用syncdb命令:

$ python manage.py syncdb

接下来这本书会提示你创建一个超级用户账户。

Django 1.9及以上版本中不再使用syncdb命令。经过一些研究,似乎migrate命令可以用于生成数据库表,但它不会提示你创建一个超级用户账户。在Django 1.9.6中我该怎么做呢?

7个回答

52

我认为你想要运行以下命令:

python manage.py makemigrations 根据你的模型创建迁移文件

python manage.py migrate 将基于创建的迁移文件在数据库中创建表格

(详见 文档 有关数据库迁移的更多详情)

python manage.py createsuperuser 在数据库中为你的应用程序创建一个超级用户 (文档)


谢谢!不过,书中也说settings.py文件应该如下所示:

Django settings for django_mytweets project.

DEBUG = True TEMPLATE_DEBUG = DEBUG ADMINS = ( # ('Your Name', 'your_email@domain.com'), ) MANAGERS = ADMINS DATABASE_ENGINE = '' DATABASE_NAME = '' .....(还有更多行)。创建超级用户后,这种情况并没有发生...您有任何想法如何获得类似的结果吗?
- Zach W
ADMINS = 设置只是一个人员列表,他们将会收到错误通知(参见此处),而不是超级用户列表。 - ben432rew
你需要自己填写settings.py文件,它不是动态生成的,所以我不会在创建超级用户后期望有任何更改(如果你指的是“这没有发生”)。 - ben432rew
哦,好的。书中的措辞是:“好的,既然你已经准备好了源代码编辑器,让我们打开项目文件夹中的settings.py文件并查看其内容。”但它从未提示我编辑settings.py文件,所以我对为什么没有变化感到困惑。谢谢! - Zach W
在ipython shell中存在User.objects.create_user()。是否有意义创建一个create_superuser()?我使用cygwin而没有python manage.py createsuperuser命令。 - Timo

14

4

对于Django 2版本

User.objects.create_superuser(username='name',email='email',password='password')

来自文档

create_superuser(username, email, password, **extra_fields)

与create_user()相同,但将is_staff和is_superuser设置为True。

此函数可以嵌入脚本中、从命令行调用或通过API触发。


或者使用django.core.management.call_command(name, *args, **options)参见https://docs.djangoproject.com/en/1.11/ref/django-admin/#django.core.management.call_command - Unicorn Tears

3

首次运行

$ django-admin startproject mysite 

在命令提示符中,然后通过执行迁移命令进行迁移

cd mysite

我的网站:

python manage.py makemigrations

然后。
python manage.py migrate

在那之后。
python manage.py createsuperuser

1
欢迎来到StackOverflow。请确保您的答案格式正确。这里有一个关于“如何格式化”的链接(https://stackoverflow.com/editing-help)。 - molamk

3

首先,我们需要创建一个可以登录管理站点的用户。运行以下命令:

$ python manage.py createsuperuser

输入您想要的用户名并按回车。用户名:admin

然后会提示您输入所需的电子邮件地址:

Email address: admin@example.com

最后一步是输入您的密码。您将被要求输入密码两次,第二次作为对第一次的确认。
Password: **********
Password (again): *********
Superuser created successfully.

1

0

你可以使用以下命令创建超级用户:

python manage.py createsuperuser

这将为您创建超级用户,并且您可以创建多个超级用户。 但是请注意,在您创建超级用户之前,您必须运行以下命令:
python manage.py makemigrations

以及它们:

python manage.py migrate

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接