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中列表元素转为数字的方法分析
Jun 14 Python
python中matplotlib实现最小二乘法拟合的过程详解
Jul 11 Python
Python实现将16进制字符串转化为ascii字符的方法分析
Jul 21 Python
Python数据结构与算法之字典树实现方法示例
Dec 13 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
Apr 29 Python
Django Aggregation聚合使用方法解析
Aug 01 Python
Python中Unittest框架的具体使用
Aug 27 Python
Python浮点数四舍五入问题的分析与解决方法
Nov 19 Python
pycharm通过ssh连接远程服务器教程
Feb 12 Python
使用python实现下载我们想听的歌曲,速度超快
Jul 09 Python
浅谈Python中的正则表达式
Jun 28 Python
yolov5返回坐标的方法实例
Mar 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
PHP 和 MySQL 基础教程(四)
2006/10/09 PHP
使用字符串函数输出整数化的PHP版本号
2006/10/09 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
javascript radio 联动效果
2009/03/04 Javascript
jquery 页面全选框实践代码
2010/04/02 Javascript
Javascript Object.extend
2010/05/18 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
2012/12/12 Javascript
JavaScript中点击事件的写法
2016/06/28 Javascript
微信小程序 Flex布局详解
2016/10/09 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
javaScript 实现重复输出给定的字符串的常用方法小结
2020/02/20 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
[47:53]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#2COL VS Spirit
2016/03/02 DOTA
Python中下划线的使用方法
2015/03/27 Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
python+opencv识别图片中的圆形
2020/03/25 Python
Python玩转加密的技巧【推荐】
2019/05/13 Python
python算法题 链表反转详解
2019/07/02 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
Weblogc domain问题
2014/01/27 面试题
经典优秀个人求职自荐信格式
2013/09/25 职场文书
十岁生日同学答谢词
2014/01/19 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
python多线程方法详解
2022/01/18 Python