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基础教程之基本数据类型和变量声明介绍
Aug 29 Python
详解Golang 与python中的字符串反转
Jul 21 Python
numpy判断数值类型、过滤出数值型数据的方法
Jun 09 Python
详解python读取image
Apr 03 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
详解python中index()、find()方法
Aug 29 Python
python通过SSH登陆linux并操作的实现
Oct 10 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
Dec 19 Python
python 爬取百度文库并下载(免费文章限定)
Dec 04 Python
如何利用python生成MD5并去重
Dec 07 Python
pytorch加载预训练模型与自己模型不匹配的解决方案
May 13 Python
pytorch 中nn.Dropout的使用说明
May 20 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判断表是否存在的方法
2015/06/18 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
Node.js使用Express.Router的方法
2017/11/14 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
validform表单验证的实现方法
2019/03/08 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
理解python正则表达式
2016/01/15 Python
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
python实现按行分割文件
2019/07/22 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
Python Flask异步发送邮件实现方法解析
2020/08/01 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
英国领先的瓷砖专家:Walls and Floors
2018/04/27 全球购物
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
求职信写作要突出重点
2014/01/01 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
经济国贸专业求职信
2014/06/18 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
庆祝国庆节演讲稿2014
2014/09/19 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL