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 26 Python
Python中的descriptor描述器简明使用指南
Jun 02 Python
Python采用Django开发自己的博客系统
Sep 29 Python
Python实现字典按照value进行排序的方法分析
Dec 23 Python
Python面向对象程序设计类的封装与继承用法示例
Apr 12 Python
django url到views参数传递的实例
Jul 19 Python
tensorflow使用range_input_producer多线程读取数据实例
Jan 20 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
Mar 24 Python
Python实现RabbitMQ6种消息模型的示例代码
Mar 30 Python
Softmax函数原理及Python实现过程解析
May 22 Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 Python
利用python+request通过接口实现人员通行记录上传功能
Jan 13 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实现的简单压缩英文字符串的代码
2008/04/24 PHP
php解决约瑟夫环示例
2014/04/09 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
PHP实现的堆排序算法详解
2017/08/17 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
Js切换功能的简单方法
2010/11/23 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
js密码强度检测
2016/01/07 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
微信小程序 SocketIO 实例讲解
2016/10/13 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
2016/10/24 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
利用vueJs实现图片轮播实例代码
2017/06/03 Javascript
微信小程序下拉刷新界面的实现
2017/09/28 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
jQuery实现回到顶部效果
2020/10/19 jQuery
关于element的表单组件整理笔记
2021/02/05 Javascript
Python datetime时间格式化去掉前导0
2014/07/31 Python
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
2017/05/08 Python
Python 12306抢火车票脚本
2018/02/07 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
python中time库的实例使用方法
2019/10/31 Python
如何在 Django 模板中输出 &quot;{{&quot;
2020/01/24 Python
一套Java笔试题
2016/08/20 面试题
英语专业毕业生自荐信
2013/10/28 职场文书
2014年安全生产大检查方案
2014/05/13 职场文书
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
学校领导干部民主生活会整改方案
2014/09/29 职场文书
战略性融资合作协议书范本
2014/10/17 职场文书
2014年保卫工作总结
2014/12/05 职场文书