django 扩展user用户字段inlines方式


Posted in Python onMarch 30, 2020

model:

class Profile(models.Model):
 user = models.OneToOneField(User, on_delete=models.CASCADE, verbose_name='昵称')
 nickname = models.CharField(max_length=20)
 
 def __str__(self):
  return '<Profile: %s for %s>' % (self.nickname, self.user.username)

admin.py

from django.contrib import admin
from django.contrib.auth.models import User
from .models import Profile
 
 
class ProfileInline(admin.StackedInline): #将Profile加入到Admin的user表中,内联
 model = Profile
 can_delete = False
 
class UserAdmin(admin.ModelAdmin):
 inlines = [ProfileInline]
 list_display = ('username', 'nickname', 'email', 'is_staff', 'is_active', 'is_superuser')
 
 def nickname(self, obj):
  return obj.profile.nickname #自定义字段显示信息
 
 nickname.short_description = '昵称'
 
# Re-register UserAdmin
admin.site.unregister(User) #去掉在admin中的注册
admin.site.register(User, UserAdmin) #用UserAdmin注册user

补充知识:Django model onetoonefield的工作模式

onetonoefield,就是一对一机制,每一条信息对应其他关联表的一条信息,记录标识为信息的id,且该键为主键

用法:

1、取值

例:User为Django自带User表,需要关联详细信息表,类为UserBaseMsg(表名为user_base_msg)和另外一张表的员工状态信息,类为UserWorkMsg(表名为user_work_msg),且在关联表中的值为user

如果取详细信息表重的a字段的值和工作信息表中的b字段

user = User.objects.get(***)

a = user.userbasemsg.a

b = user.userworkmsg.b

筛选a = c的User信息

user = User.objects.get(UserBaseMsg__a=c)

此处get还可以换成filter、exclude等条件

在UserBaseMsg__a后可加各种条件查询

常用的有

__in = # 所筛选的条件在给的范围内

__gt = # 筛选的大于指定的值

__gte = # 筛选的大于等于指定的值

__lt = # 筛选的值小于指定的值

__lte = # 筛选的值小于等于指定的值

以上这篇django 扩展user用户字段inlines方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
Oct 13 Python
PyCharm 常用快捷键和设置方法
Dec 20 Python
Python 爬取携程所有机票的实例代码
Jun 11 Python
在python带权重的列表中随机取值的方法
Jan 23 Python
详解python中@的用法
Mar 27 Python
python基础知识(一)变量与简单数据类型详解
Apr 17 Python
Django视图扩展类知识点详解
Oct 25 Python
TFRecord文件查看包含的所有Features代码
Feb 17 Python
Python如何使用turtle库绘制图形
Feb 26 Python
Python多线程通信queue队列用法实例分析
Mar 24 Python
python函数调用,循环,列表复制实例
May 03 Python
Pygame Event事件模块的详细示例
Nov 17 Python
Python3标准库之threading进程中管理并发操作方法
Mar 30 #Python
解决django xadmin主题不显示和只显示bootstrap2的问题
Mar 30 #Python
Python2 与Python3的版本区别实例分析
Mar 30 #Python
django xadmin中form_layout添加字段显示方式
Mar 30 #Python
基于virtualenv创建python虚拟环境过程图解
Mar 30 #Python
Python实现RabbitMQ6种消息模型的示例代码
Mar 30 #Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 #Python
You might like
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
2017/04/25 PHP
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
基于JS模仿windows文件按名称排序效果
2016/06/29 Javascript
vue.js学习笔记:如何加载本地json文件
2017/01/17 Javascript
AngularJS学习第二篇 AngularJS依赖注入
2017/02/13 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
python利用正则表达式提取字符串
2016/12/08 Python
基于Django contrib Comments 评论模块(详解)
2017/12/08 Python
浅析python实现scrapy定时执行爬虫
2018/03/04 Python
使用python绘制二维图形示例
2019/11/22 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
CSS3字体效果的设置方法小结
2016/06/13 HTML / CSS
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
CSS3+Sprite实现僵尸行走动画特效源码
2016/01/27 HTML / CSS
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
Bibloo荷兰:女士、男士和儿童的服装、鞋子和配饰
2019/02/25 全球购物
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
出纳试用期自我鉴定
2014/04/07 职场文书
园林技术专业求职信
2014/07/28 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
学习朴航瑛老师爱岗敬业先进事迹思想汇报
2014/09/17 职场文书
党员三严三实对照检查材料
2014/10/13 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
员工离职感谢信
2015/01/22 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
运动会跳远广播稿
2015/08/19 职场文书
Python基于Tkinter开发一个爬取B站直播弹幕的工具
2021/05/06 Python