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 selenium 三种等待方式解读
Sep 15 Python
Python编写登陆接口的方法
Jul 10 Python
python opencv实现运动检测
Jul 10 Python
面向初学者的Python编辑器Mu
Oct 08 Python
python3.6利用pyinstall打包py为exe的操作实例
Oct 31 Python
对pycharm 修改程序运行所需内存详解
Dec 03 Python
Python根据欧拉角求旋转矩阵的实例
Jan 28 Python
python批量爬取下载抖音视频
Jun 17 Python
Django3.0 异步通信初体验(小结)
Dec 04 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 Python
Python大批量搜索引擎图像爬虫工具详解
Nov 16 Python
anaconda升级sklearn版本的实现方法
Feb 22 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
239军机修复记
2021/03/02 无线电
封装ThinkPHP的一个文件上传方法实例
2014/10/31 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
JavaScript实现简单的时钟实例代码
2013/11/23 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
微信小程序实现弹框效果
2020/05/26 Javascript
Python实现分割文件及合并文件的方法
2015/07/10 Python
Python绘制七段数码管实例代码
2017/12/20 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
Python 实现删除某路径下文件及文件夹的实例讲解
2018/04/24 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
python匿名函数的使用方法解析
2019/10/10 Python
Python基于WordCloud制作词云图
2019/11/29 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
美国现代家具购物网站:LexMod
2019/01/09 全球购物
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
主持人婚宴答谢词
2014/01/28 职场文书
股权收购意向书
2014/04/01 职场文书
技校毕业生自荐书
2014/05/23 职场文书
运动会演讲稿300字
2014/08/25 职场文书
教师师德考核自我评价
2014/09/13 职场文书
介绍信怎么写
2015/05/05 职场文书
2015领导干部廉洁自律工作总结
2015/07/23 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python
关于Python使用turtle库画任意图的问题
2022/04/01 Python