前言
大家在安装Django成功后,创建一个admin管理员就能管理我们的数据了,但是大家有没有想过我们创建管理员的信息被存储在那里了呢?
解答
首先,虽然我们在项目开始时没有编写任何模型,但是我们也可以执行迁移文件的命令
python manage.py makemigrations
python manage.py migrate
然后我们会发现也会生成很多的表单,这是Django内置模型映射的表单
大家可以看到我用红框标出的表单,这个表单就是存储我们admin管理的信息了
当我们点进去时我们会发现它自定义了很多的字段,比如username、password、email等,这些字段我们平时做开发时是会常用的,如果我们能用这个表来存储我们注册用户的表会我们省去不少事情!那怎么使用auth_user这个自带的用户表呢?
步骤
- 首先我们还是要在model.py中定义一个用户表模型的,大家可以在模型类中添加需要的模型(像用户名、密码等字段就不用我们再定义了,因为auth_user已经定义了)
class User(AbstractUser):
GENDER_CHOICES = (
('男', 'Male'),
('女', 'Female'),
)
gender = models.CharField(max_length=2, choices=GENDER_CHOICES, verbose_name='性别')
mobile = models.CharField(unique=True, max_length=11, error_messages={'unique': '该手机号已被注册!'}, verbose_name='手机号码')
cloud_icon = models.CharField(max_length=100, verbose_name='头像')
class Meta:
db_table = 'user'
verbose_name = '用户表'
verbose_name_plural = verbose_name
ordering = ['id']
-
执行迁移文件命令
python manage.py makemigrations
python manage.py migrate
执行结果:
然后会发现报了一大堆错误。。。。。。
不要慌!
大家看我标出的红框可以知道大概意思是说user表添加或更改了一些字段!我们要知道在Django中一个表对应一张模型!如果我们执行成功的会那么数据库中就会生成我们模型类的表,可是我们是想使用auth_user表,那么我们必须在setting.py文件中指明我们要使用! -
在setting.py文件中添加一句
AUTH_USER_MODEL = 'myBlog.User'
AUTH_USER_MODEL = ‘你的应用名.你定义的模型类名’
-
然后在执行迁移文件命令
然后就会报错。。。。
不要慌,我们可以看到红框中显示myBlog.0001_initial
这个信息,再看我们的迁移文件中
两者结合应该能猜出是0001_initial.py
这个文件重复了,我们把这个文件和刚刚生成的表单全部删了(反正刚刚建表没有数据)
-
最后在执行迁移命令,然后你就会发现。。。。。