Django基础教程(113)Django认证和权限之模型类添加一些信息:给Django的User模型“整容”,还是直接“换头”?——附终极代码示例

兄弟们,姐妹们,各位在代码世界里摸爬滚打的卷王们,今天咱们不聊风花雪月,就来唠唠Django里那个既熟悉又陌生的家伙——用户认证与权限

你肯定遇到过这种场景:Django自带的User模型,就像学校发的基础款校服,穿是能穿,但你想别个胸针、画个涂鸦,搞点个性化?对不起,规矩不允许。它只给了你用户名、密码、邮箱这些基础字段,当你老板拍着你的肩膀说:“小张啊,咱们的用户得有个性签名、上传个头像,再来个微信ID吧……”

你瞬间懵了,内心OS:这破User模型,它不顶用啊!

别急,今天这篇深度“解剖”文,就是你的救命稻草。我们将化身“代码整形师”,给这个“光杆司令”User模型来一次彻头彻尾的“扩列”(扩充字段),并附上权限管理的“尚方宝剑”。全程高能,保证你看完能从“小白”秒变“老司机”,在项目里轻松拿捏用户系统。

第一幕:为啥不能将就?——Django自带User的“先天不足”

Django自带的django.contrib.auth.models.User,确实是个开箱即用的好同志。但它有个最大的“毛病”:字段太少,不够“社会”

它默认只有:

  • username (用户名)
  • first_name & last_name (名和姓,老外那套)
  • email (邮箱)
  • password (密码)
  • groups & user_permissions (组和权限,核心!)
  • is_staff & is_superuser (员工标识和超级管理员)
  • 还有几个状态标识位。

看出来了吗?没有手机号!没有头像!没有昵称!更没有咱们中国人爱用的微信OpenID!

你要是硬着头皮直接改源码,那无异于“代码自杀”,版本一升级,全完犊子。所以,扩展,是唯一的出路

第二幕:三大“整形”方案,总有一款适合你

给User模型“动刀子”,主要有三大流派,各有各的绝活。

方案一:Proxy模型——玩一手“影分身之术”

这招最轻量,属于“换汤不换药”。它不创建新表,只是给原来的User模型创建一个“代理”,让你可以改变它在后台的管理行为,或者给它加点自定义的方法。

啥时候用?
当你只是想给User模型增加点自定义的管理器方法或者改变后台显示方式,而不需要新增字段时。

代码示例:给User模型加个“00后”判断方法

# models.py
from django.contrib.auth.models import User

cl
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值