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 删除指定时间间隔之前的文件实例
Apr 24 Python
Pycharm 操作Django Model的简单运用方法
May 23 Python
python实现浪漫的烟花秀
Jan 30 Python
对python中url参数编码与解码的实例详解
Jul 25 Python
python中的数组赋值与拷贝的区别详解
Nov 26 Python
Python-openCV读RGB通道图实例
Jan 17 Python
对python中各个response的使用说明
Mar 28 Python
django实现模型字段动态choice的操作
Apr 01 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
May 23 Python
python数据类型强制转换实例详解
Jun 22 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 Python
对Pytorch 中的contiguous理解说明
Mar 03 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图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
用javascript作一个通用向导说明
2011/08/30 Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
2013/01/11 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
深入分析jsonp协议原理
2015/09/26 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
jQuery响应滚动条事件功能示例
2017/10/14 jQuery
微信小程序使用request网络请求操作实例
2017/12/15 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
2018/09/28 Javascript
小程序实现新用户判断并跳转激活的方法
2019/05/20 Javascript
Python while 循环使用的简单实例
2016/06/08 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
在Python中执行系统命令的方法示例详解
2017/09/14 Python
使用python实现链表操作
2018/01/26 Python
Python pymongo模块常用操作分析
2018/09/01 Python
python+OpenCV实现图像拼接
2020/03/05 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
2020/10/15 Python
python实现猜拳游戏项目
2020/11/30 Python
CSS3中使用RGBA设置透明度的示例
2015/08/04 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(一)
2013/01/21 HTML / CSS
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
新浪网技术部笔试题
2016/08/26 面试题
岗位职责范本
2013/11/23 职场文书
服务生自我鉴定
2014/01/22 职场文书
日语专业求职信
2014/07/04 职场文书
责任书格式范文
2014/07/28 职场文书
幼儿园辞职书
2015/02/26 职场文书
自我评价优缺点范文
2015/03/11 职场文书
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android
阿里云服务器部署mongodb的详细过程
2021/09/04 MongoDB
防止web项目中的SQL注入
2021/12/06 MySQL
python实现手机推送 代码也就10行左右
2022/04/12 Python