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 相关文章推荐
pygame 精灵的行走及二段跳的实现方法(必看篇)
Jul 10 Python
python配置grpc环境
Jan 01 Python
Python图像处理之颜色的定义与使用分析
Jan 03 Python
Python字符串的全排列算法实例详解
Jan 07 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
Apr 16 Python
Python面向对象之类和实例用法分析
Jun 08 Python
Django 响应数据response的返回源码详解
Aug 06 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
Jan 02 Python
OpenCV 之按位运算举例解析
Jun 19 Python
详解python os.path.exists判断文件或文件夹是否存在
Nov 16 Python
python help函数实例用法
Dec 06 Python
深入理解pytorch库的dockerfile
Jun 10 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/03 咖啡文化
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
2014/11/25 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
php5.x禁用eval的操作方法
2018/10/19 PHP
jQuery select控制插件
2009/08/17 Javascript
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
分享20款好玩的jQuery游戏
2011/04/17 Javascript
JavaScript对象创建及继承原理实例解剖
2013/02/28 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
html dom节点操作(获取/修改/添加或删除)
2014/01/23 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
2017/08/28 Javascript
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
jquery插件开发模式实例详解
2019/07/20 jQuery
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
js实现微信聊天界面
2020/08/09 Javascript
Python中的多重装饰器
2015/04/11 Python
python中异常捕获方法详解
2017/03/03 Python
Python 查看文件的编码格式方法
2017/12/21 Python
python-str,list,set间的转换实例
2018/06/27 Python
对python3 一组数值的归一化处理方法详解
2018/07/11 Python
Tensorflow 多线程设置方式
2020/02/06 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
Html5实现iPhone开机界面示例代码
2013/06/30 HTML / CSS
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
跟单文员的岗位职责
2013/11/14 职场文书
效能监察建议书
2014/05/19 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
解除同居协议书
2015/01/29 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
设备技术员岗位职责
2015/04/11 职场文书
自考生自我评价
2019/06/21 职场文书