django项目初始化:扩展django自带的用户表,继承django自带的用户表
django项目初始化:扩展django自带的用户表,继承django自带的用户表
要想使用django的自带的权限控制功能,需要使用django自带的用户表,但该表在字段可能不满足我们业务的需求,可能需要拓展某些字段。需要继承django自带的用户表,再扩展需要的字段。
操作步骤
1、在models.py中书写模型类
from django.db import models
# Create your models here.
from django.contrib.auth.models import AbstractUser
#用户表
class User(AbstractUser):
#继承原来的auth表,拓展字段,不要与原来有的字段名重复
telephone = models.CharField(max_length=11,verbose_name='手机号码')
icon = models.ImageField(upload_to='icon',default='/icon/default.jpg/',verbose_name='用户头像')
name = models.CharField(max_length=12,verbose_name='用户姓名')
sid = models.CharField(max_length=24,verbose_name='身份证')
sex = models.IntegerField(choices=((1,'男'),(0,'女')),default=1,verbose_name='性别')
role = models.IntegerField(choices=((1,'超级管理员'),(2,'管理员'),(3,'老师'),(4,'学生')),default=4,verbose_name='用户角色')
entrance = models.CharField(max_length=10,verbose_name='入校年月')
stuclass = models.ForeignKey(to='stuClass',null=True,on_delete=models.CASCADE,verbose_name='班级外键')
2、在模型类继承后还不够,需要告诉django
在,settings.py中配置告诉django
AUTH_USER_MODEL = '应用名.模型类名小写'
3、千万注意,执行上面的操作后再进行数据库迁移命令
python manage.py makemigrations
python manage.py migrate