当前位置: 首页 > 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文件夹里的文件删除:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 代码随想录-- 二叉树 -- 二叉树的所有路径
  • 未来的去中心化网络:Web3与AI的深度融合探讨
  • 操作系统:线程实现方式
  • 最大时间
  • Open3D 四元数、欧拉角及旋转向量转旋转矩阵的方式
  • application/x-www-form-urlencoded与multipart/form-data与application/json的区别
  • 多态与接口(Golang)
  • 金融业开源技术 术语
  • 报错module ‘markdown‘ has no attribute ‘version‘解决方法
  • 网络包处理库Scapy: 计算checksum,csum
  • 米壳AI:分享一个轻松保存外网高清原视频的方法!
  • 微信企业微信忽然爆满 怎么清理才干净?一招彻底清理干净垃圾文件
  • 顶点照明渲染路径
  • Spring Boot 注解探秘:@Validated 开启数据验证之旅(上)
  • 数据链路层与ARP协议
  • “大数据应用场景”之隔壁老王(连载四)
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【翻译】babel对TC39装饰器草案的实现
  • 【个人向】《HTTP图解》阅后小结
  • 230. Kth Smallest Element in a BST
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • go append函数以及写入
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Java-详解HashMap
  • Linux CTF 逆向入门
  • MySQL用户中的%到底包不包括localhost?
  • nginx 负载服务器优化
  • PHP 小技巧
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • 翻译:Hystrix - How To Use
  • 欢迎参加第二届中国游戏开发者大会
  • 基于 Babel 的 npm 包最小化设置
  • 今年的LC3大会没了?
  • 坑!为什么View.startAnimation不起作用?
  • 微信公众号开发小记——5.python微信红包
  • 我从编程教室毕业
  • 一个项目push到多个远程Git仓库
  • 因为阿里,他们成了“杭漂”
  • 自动记录MySQL慢查询快照脚本
  • 第二十章:异步和文件I/O.(二十三)
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​香农与信息论三大定律
  • # 安徽锐锋科技IDMS系统简介
  • #if等命令的学习
  • #Lua:Lua调用C++生成的DLL库
  • #nginx配置案例
  • (1)Hilt的基本概念和使用
  • (1)常见O(n^2)排序算法解析
  • (C++17) std算法之执行策略 execution
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (poj1.3.2)1791(构造法模拟)
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • (五)关系数据库标准语言SQL