详解Django的 create_superuser() 函数:创建超级用户

  • Post category:Python

create_superuser()函数是Django内置的一个管理命令,用于在Django应用程序中创建超级用户。它主要用于开发过程中,启用Django管理后台以及实现网站的后台管理。

create_superuser()函数主要有以下作用:

  1. 创建超级用户:用命令行运行create_superuser()函数可以创建超级用户,这些用户具有管理员权限并拥有应用程序中所有模型和所有Django管理后台的特权。

  2. 管理应用程序:在使用Django应用程序时,create_superuser()函数可以帮助管理员创建应用程序的初始账户,控制应用程序的访问权限,管理应用程序的数据库等。

使用create_superuser()需要注意以下几点:

  1. 该函数必须在Django shell中调用,即在运行manage.py shell命令后进行。

  2. 函数需要导入Django的auth模块,即from django.contrib.auth.models import User。该模块内提供了User类,是用于保存用户信息的。所以需要注意,调用此函数时需要保证App中已经安装了auth模块。

  3. 函数需要传入4个参数,分别是username,email,password和**extra_fields。

其中,username是必填项,需要填写用户的登录用户名;email是用户的注册邮箱;password是用户的密码;**extra_fields是一个可选关键字参数,它用于保存除基本属性(username、email、password)以外的其他属性。

一般而言,extra_fields参数可以在创建超级用户时添加额外信息。例如说,我们想在用户创建时添加一个真实姓名的字段,则调用create_superuser()时可以如下添加参数:

python
from django.contrib.auth.models import User

User.objects.create_superuser(username='admin', password='123456', email='admin@example.com', first_name='Jack', last_name='Ma')

上述代码中,除了必填项username、password、email外,它还添加了first_name和last_name两个额外的字段,这些字段将被保存在用户模型对象中。

另外,我们再来看一个例子:

python
from django.contrib.auth.models import User

User.objects.create_superuser('superuser', 'superuser@example.com', password='12345')

上述代码中,它只传递了必选项中的三个参数,而没有传递extra_fields参数,这意味着超级用户只保存了username、password、email这三个属性。

总之,create_superuser()函数是Django管理后台常用的操作命令之一,它在管理Django应用程序中的用户上具有广泛的重要性。