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调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
Aug 15 Python
django 自定义用户user模型的三种方法
Nov 18 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
Apr 28 Python
Python处理中文标点符号大集合
May 14 Python
对python的文件内注释 help注释方法
May 23 Python
python pytest进阶之xunit fixture详解
Jun 27 Python
在自动化中用python实现键盘操作的方法详解
Jul 19 Python
python实现银行管理系统
Oct 25 Python
pytorch标签转onehot形式实例
Jan 02 Python
Python实现子类调用父类的初始化实例
Mar 12 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 Python
python 模块导入问题汇总
Feb 01 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
缅甸的咖啡简史
2021/03/04 咖啡文化
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
php文件怎么打开 如何执行php文件
2011/12/21 PHP
以文件形式缓存php变量的方法
2015/06/26 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
JavaScript调用ajax获取文本文件内容实现代码
2014/03/28 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
JavaScript动态修改弹出窗口大小的方法
2015/04/06 Javascript
input输入密码变黑点密文的实现方法
2017/01/09 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
以windows service方式运行Python程序的方法
2015/06/03 Python
Python线程指南详细介绍
2017/01/05 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
Python+OpenCV实现实时眼动追踪的示例代码
2019/11/11 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
python实现TCP文件传输
2020/03/20 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
2020/05/26 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
自荐信包含哪些内容
2013/10/30 职场文书
建筑系毕业生自我鉴定
2014/01/24 职场文书
主题酒店策划书
2014/01/28 职场文书
酒店经理职责
2014/01/30 职场文书
乔迁之喜主持词
2014/03/27 职场文书
给老婆道歉的话
2015/01/20 职场文书
2019年中,最受大众欢迎的6本新书
2019/08/07 职场文书
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技