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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现