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文件夹里的文件删除:

相关文章:
Django+Vue3前后端分离学习(二)(重写User类)
一、重写User类: 1、首先导入User类: from django.contrib.auth.models import User 2、然后点在User上,按住ctrl 点进去,发现 User类继承AbstractUser Ctrl点进去AbstractUser,然后将此方法全部复制到自己APP的mo…...
兔英语语法体系——观后笔记
目录 一、视频链接 二、视频前言 三、简单句(Simple Sentences) 1. 可独立完成的动作 2. 有1个动作的承受者 3. 有两个动作承受者 4. 只有一个动作承受者(但需补充) 5. 非 “动作” 6. 总结 四、五大基本句型 五、句子成分 6. 定语 7. 状语 8. 同位语 9. 总结 …...
哈希表如何避免冲突
系列文章: 1. 先导片--Map&Set之二叉搜索树 2. Map&Set之相关概念 3. 哈希表如何避免冲突 目录 1.概念 2. 冲突-概念 3. 冲突-避免 3.1 冲突-避免-哈希函数设计 3.2 冲突-避免-负载因子调节 4. 冲突-解决 4.1 冲突-解决-闭散列 4.1.1 线性探…...
内核模块驱动开发
内核模块开始学习前,一定是最先接触到内核模块三要素(面试),驱动入口、驱动出口和协议的遵循。 1.内核模块三要素(面试)//修饰模块化驱动的入口函数module_init(demo_init);//修饰模块化驱动的出口函数module_eixt(demo_exit);//遵循GPL开源协议MODULE_…...
Linux 下 alsa 库录音并保存为 WAV 格式
麦克风列表: [jnjn build]$ arecord -l **** List of CAPTURE Hardware Devices **** card 0: AudioPCI [Ensoniq AudioPCI], device 0: ES1371/1 [ES1371 DAC2/ADC]Subdevices: 1/1Subdevice #0: subdevice #0 card 1: Camera [2K USB Camera], device 0: USB Aud…...
使用stripe进行在线支付、退款、订阅、取消订阅功能(uniapp+h5)
stripe官网:Stripe 登录 | 登录 Stripe 管理平台 然后在首页当中打开测试模式,使用测试的公钥跟私钥进行开发 测试卡号 4242 4242 4242 4242 1234 567 在线支付 stripe的在线支付有两种,第一种就是无代码,第二中就是使用api进行自定义,一般来说推荐第二种进行开发 无…...
深度学习中常见的损失函数
关注B站可以观看更多实战教学视频:hallo128的个人空间 深度学习中常见的损失函数 损失函数的作用 损失函数是衡量神经网络输出与真实标签之间差距的指标。在训练过程中,神经网络的目标是最小化损失函数的值。常见的损失函数包括均方误差(MS…...
认识Linux及Linux的环境搭建
目录 1、什么是Linux2、Linux环境搭建2.1 下载安装 Xshell2.2 下载安装 VMware Workstation Pro2.3 选择适合自己系统 1、什么是Linux Linux,一般指GNU/Linux(单独的Linux内核并不可直接使用,一般搭配GNU套件,故得此称呼ÿ…...
Java之线程篇三
目录 线程状态 观察线程的所有状态 线程状态及其描述 线程状态转换 代码示例1 代码示例2 线程安全 概念 线程不安全的代码示例 线程不安全的原因 线程安全的代码示例-加锁 synchronized关键字 synchronized的特性 小结 形成死锁的四个必要条件 …...
Bootstrap动态设置表格title项
页面searchType <form id"formId"><div class"select-list"><ul><li><select name"searchType" id"searchType"><option value"1">按各节点统计</option><option value"…...
Arrays.sort()方法在Java中的使用:理论与实践
目录 一.概述 二.实现方式 三.具体介绍 1.基本数据类型数组 2.对象数组 1)使对象实现Comparable接口 2)为对象再专门实现一个比较器类 四.进阶技巧 1.基础类型数组实现自定义比较 2.如何进行逆序排序 3.lambda表达式实现比较器类 4.List的排序方法Collection.sort()…...
用AI写论文,千万不要这样用ChatGPT生成参考文献References!!
ChatGPT作为一种先进的语言大模型,被广泛用于生成文本,虽然用ChatGPT辅助论文写作已是大势所趋,但是,用于生成参考文献References的部分还是要谨慎对待。 在学术写作中,参考文献References扮演着至关重要的角色&#…...
Debian 12如何关闭防火墙
在Debian 12中,默认的防火墙管理工具是ufw(Uncomplicated Firewall)。您可以使用以下命令来关闭防火墙: 关闭防火墙: sudo ufw disable查看防火墙状态: sudo ufw status如果需要重新开启防火墙:…...
windows C++-并行编程-PPL任务并行(二)
延续任务 在异步编程中,一个异步操作在完成时调用另一个操作并将数据传递到其中的情况非常常见。 传统上,这使用回调方法来完成。 在并发运行时中,延续任务提供了同样的功能。 延续任务(也简称为“延续”)是一个异步任务,由另一个…...
快速了解 servlet(SpringMVC 的底层)
Servlet 是 Java EE(现 Jakarta EE)中用于处理 Web 请求的核心组件。它在 Web 应用程序的服务器端运行,负责接收和处理客户端(如浏览器)的请求,并生成响应。 尽管现代Web开发更多采用SpringMVC等框架&…...
QT中tr的作用是什么
在Qt框架中,tr() 函数是一个非常重要的宏,它用于国际化和本地化(i18n和l10n)支持。tr() 函数使得Qt应用程序能够根据不同的语言环境(locale)显示相应的翻译文本,从而支持多种语言。 具体来说&a…...
OpenCV结构分析与形状描述符(7)计算轮廓的面积的函数contourArea()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算轮廓的面积。 该函数计算轮廓的面积。与 moments 类似,面积是使用格林公式计算的。因此,返回的面积与你使用 drawCo…...
内网环境使用Docker部署Qwen2模型-vLLM篇
在此之前,我们已成功利用Docker与Ollama框架,在内网环境中部署了Qwen2模型。下面我们再来看一下使用Docker与vLLM框架部署Qwen2模型。 准备vLLM镜像 在一台具备网络环境的机器上执行以下命令,拉取vLLM的镜像: # 官方镜像 docke…...
Rust的常数、作用域与所有权
【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com) Rust到底值不值得学,之一 -CSDN博客 Rust到底值不值得学,之二-CSDN博客 Rust的数据类型-CSDN博客 3.7 常…...
Spring 源码解读:解决循环依赖的三种方式
引言 在复杂的应用开发中,循环依赖是一个常见的问题。简单来说,循环依赖是指两个或多个Bean之间互相依赖,导致程序无法正常实例化这些Bean。Spring容器通过依赖注入(DI)来管理Bean的创建与生命周期,并在遇…...
从零开始:roLabelImg安装与OBB旋转框标注实战指南
1. 为什么需要roLabelImg和旋转框标注 在计算机视觉项目中,我们经常需要标注图像中的目标物体。对于常规的矩形框标注,LabelImg这类工具已经足够好用。但遇到倾斜物体时,比如遥感图像中的飞机、自然场景中的交通标志、医学图像中的器官&#…...
【Python】安装 Python 环境
需要安装的环境主要是两个部分: 运行环境:Python开发环境:PyCharm 一、安装 Python 1、找到官方网站 Welcome to Python.org 2、找到下载页面 选择 "Download for Windows": 现在主流使用的 Python 版本是 Python…...
突破4大技术壁垒!MediaPipe TouchDesigner让实时视觉交互创作效率提升300%
突破4大技术壁垒!MediaPipe TouchDesigner让实时视觉交互创作效率提升300% 【免费下载链接】mediapipe-touchdesigner GPU Accelerated MediaPipe Plugin for TouchDesigner 项目地址: https://gitcode.com/gh_mirrors/me/mediapipe-touchdesigner 核心价值&…...
智能票务自动化工具:提升大型活动门票获取效率的全流程解决方案
智能票务自动化工具:提升大型活动门票获取效率的全流程解决方案 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase 在数字化时代,大型展会、体育赛事等热…...
Lingbot-Depth-Pretrain-ViTL-14在互联网内容审核中的深度场景理解应用
Lingbot-Depth-Pretrain-ViTL-14在互联网内容审核中的深度场景理解应用 每天,互联网上都会产生数以亿计的图片和视频。对于平台的内容审核团队来说,这既是流量的盛宴,也是巨大的挑战。传统的审核方式,无论是依赖人工还是基于二维…...
千问3.5-2B在办公提效场景:会议白板照片文字提取+要点总结实战
千问3.5-2B在办公提效场景:会议白板照片文字提取要点总结实战 1. 办公场景的痛点与解决方案 1.1 会议记录的传统困境 每次开完会,最让人头疼的就是整理会议记录了。特别是那些在白板上写满讨论要点的会议,你需要: 对着白板照片…...
Rust Web开发:ActixWeb实战指南
1. 为什么选择ActixWeb进行Rust Web开发 我第一次接触ActixWeb是在三年前的一个电商项目里,当时团队需要处理每秒上万次的库存查询请求。测试了多个Rust框架后,ActixWeb凭借其卓越的性能表现脱颖而出——在同等硬件条件下,它的QPS(…...
从HuggingFace下载到本地部署:手把手教你定制自己的BertTokenizer工作流
从HuggingFace下载到本地部署:手把手教你定制自己的BertTokenizer工作流 在自然语言处理项目中,一个高效且灵活的分词器往往是整个流程的基石。BertTokenizer作为HuggingFace生态中的核心组件,其预训练版本能够处理绝大多数英文和中文文本处理…...
Qwerty Learner可扩展性设计:为未来功能预留空间的完整指南
Qwerty Learner可扩展性设计:为未来功能预留空间的完整指南 【免费下载链接】qwerty-learner 为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers 项目地址: https:…...
Java低代码组件如何通过等保2.0三级认证?某省级政务平台12类组件合规改造清单(含国密SM4集成细节)
第一章:Java低代码组件等保2.0三级合规性概览等保2.0三级要求面向处理重要数据或影响关键业务连续性的信息系统,对Java低代码平台及其组件提出了覆盖技术与管理双维度的强制性安全约束。在技术层面,核心聚焦于身份鉴别、访问控制、安全审计、…...
