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 用户登录验证的小例子
Mar 06 Python
Python中的生成器和yield详细介绍
Jan 09 Python
Python实现从URL地址提取文件名的方法
May 15 Python
Python实现以时间换空间的缓存替换算法
Feb 19 Python
详解MySQL数据类型int(M)中M的含义
Nov 20 Python
python编程测试电脑开启最大线程数实例代码
Feb 09 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
wxPython+Matplotlib绘制折线图表
Nov 19 Python
Python Tornado之跨域请求与Options请求方式
Mar 28 Python
如何在mac下配置python虚拟环境
Jul 06 Python
Django实现翻页的示例代码
May 24 Python
python接口测试返回数据为字典取值方式
Feb 12 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
Smarty安装配置方法
2008/04/10 PHP
PHP基础学习之流程控制的实现分析
2013/04/28 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
JavaScript前补零操作实例
2015/03/11 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
2017/01/08 Javascript
ES6新特性三: Generator(生成器)函数详解
2017/04/21 Javascript
Node.js readline 逐行读取、写入文件内容的示例
2018/03/01 Javascript
jQuery实现的上传图片本地预览效果简单示例
2018/03/29 jQuery
JS实现可针对算术表达式求值的计算器功能示例
2018/09/04 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
详解将Django部署到Centos7全攻略
2018/09/26 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
Python Pandas数据结构简单介绍
2019/07/03 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
Pytorch的mean和std调查实例
2020/01/02 Python
Python文件操作方法详解
2020/02/09 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
中国医药集团国药在线:国药网
2017/02/06 全球购物
定义一结构体数组表示分数,并求两个分数相加之和
2013/06/11 面试题
外语专业毕业生个人的自荐信
2013/11/19 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
给老婆道歉的话
2015/01/20 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
2015年度企业工作总结
2015/05/21 职场文书
离婚被告代理词
2015/05/23 职场文书
个人合作协议范本
2015/08/06 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书
tensorflow+k-means聚类简单实现猫狗图像分类的方法
2021/04/28 Python
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android