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

猜你喜欢

转载自blog.csdn.net/weixin_46371752/article/details/130456863