当前位置: 首页 > news >正文

Django+Vue3前后端分离学习(二)(重写User类)

一、重写User类:

1、首先导入User类:

from django.contrib.auth.models import User

2、然后点在User上,按住ctrl 点进去,发现

User类继承AbstractUser

Ctrl点进去AbstractUser,然后将此方法全部复制到自己APP的models.py里:

可以修改名字,导入

from django.contrib.auth.models import User, AbstractBaseUser, PermissionsMixin

选择自己需要的保留,添加自己需要的:(此时可以加上下面第8步的uid,要不还得重新创建数据库)

注:blank是代表是否能为空,unique是代表是否是唯一

3、设置状态(好像枚举):

class UserStatusChoices(models.IntegerChoices):# 已经激活的ACTIVED = 1# 没有激活UNACTIVE = 2# 被锁定LOCKED = 3

使用:

status = models.IntegerField(choices=UserStatusChoices, default=UserStatusChoices.UNACTIVE)

4、重写UserManager:

首先先导入UserManager ,然后ctrl查看:

将下面的复制到自己app的models.py里,导入BaseUserManager

可以改名字:

注:password直接定义在了AbstractBaseUser里,所以无需自己写

点击import的BaseUserManager,进入,找到import,将下面标红的复制到models.py里,可以把不需要的删掉,只保留make_password。

5、在settings.py里设置User模型是改成自己的User

# 覆盖django自带的User模型
# 'app.User模型名'
# 下面写法是不对的
# AUTH_USER_MODEL = 'apps.oaauth.models.OAUser'
AUTH_USER_MODEL = 'oaauth.OAUser'

6、同步数据库模型:

python manage.py makemigrations   
python manage.py migrate   

7、创建个超级用户:

python manage.py createsuperuser

8、修改OAUser的主键(为了安全性)

用唯一的字符串作为主键:

安装:

 pip install django-shortuuidfield

在model.py里引用:

from shortuuidfield import ShortUUIDField

注意:如果已经创建了表,重新添加uid需要把数据库删了,重新创建,还需要把migrations文件夹里的文件删除:

http://www.lryc.cn/news/433517.html

相关文章:

  • 兔英语语法体系——观后笔记
  • 哈希表如何避免冲突
  • 内核模块驱动开发
  • Linux 下 alsa 库录音并保存为 WAV 格式
  • 使用stripe进行在线支付、退款、订阅、取消订阅功能(uniapp+h5)
  • 深度学习中常见的损失函数
  • 认识Linux及Linux的环境搭建
  • Java之线程篇三
  • Bootstrap动态设置表格title项
  • Arrays.sort()方法在Java中的使用:理论与实践
  • 用AI写论文,千万不要这样用ChatGPT生成参考文献References!!
  • Debian 12如何关闭防火墙
  • windows C++-并行编程-PPL任务并行(二)
  • 快速了解 servlet(SpringMVC 的底层)
  • QT中tr的作用是什么
  • OpenCV结构分析与形状描述符(7)计算轮廓的面积的函数contourArea()的使用
  • 内网环境使用Docker部署Qwen2模型-vLLM篇
  • Rust的常数、作用域与所有权
  • Spring 源码解读:解决循环依赖的三种方式
  • Web3 详解
  • Spring 中依赖注入注解的区别详解
  • PTA求一批整数中出现最多的个位数字
  • 探索国产编程工具:如何实现工作效率翻倍
  • 秒懂:进程相关的操作
  • PDF 软件如何帮助您编辑、转换和保护文件。
  • 蓝桥杯嵌入式国三备赛经验分享
  • AI编程工具合集
  • [网络编程]通过java用TCP实现网络编程
  • Python(TensorFlow)和Java及C++受激发射损耗导图
  • IEEE投稿模板翻译