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显示进度条的方法
Sep 20 Python
Python多线程同步Lock、RLock、Semaphore、Event实例
Nov 21 Python
Python中用psycopg2模块操作PostgreSQL方法
Nov 28 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
Mar 14 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
Apr 01 Python
python实现对象列表根据某个属性排序的方法详解
Jun 11 Python
Python轻量级web框架bottle使用方法解析
Jun 13 Python
python关于倒排列的知识点总结
Oct 13 Python
python tkinter的消息框模块(messagebox,simpledialog)
Nov 07 Python
Python爬虫入门教程01之爬取豆瓣Top电影
Jan 24 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 Python
在pycharm中无法import所安装的库解决方案
May 31 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
PHP获取服务器端信息的方法
2014/11/28 PHP
PHP命名空间namespace及use的简单用法分析
2018/08/03 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
2014/07/02 Javascript
nodejs中实现sleep功能实例
2015/03/24 NodeJs
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
NodeJs——入门必看攻略
2016/06/27 NodeJs
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
Vue.js第四天学习笔记
2016/12/02 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
python根据url地址下载小文件的实例
2018/12/18 Python
python基础梳理(一)(推荐)
2019/04/06 Python
python IDLE 背景以及字体大小的修改方法
2019/07/12 Python
使用pip安装python库的多种方式
2019/07/31 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
Python面向对象实现方法总结
2020/08/12 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
意大利比基尼品牌:MISS BIKINI
2019/11/02 全球购物
应届生法律顾问求职信
2013/11/19 职场文书
学校社会实践活动总结
2014/07/03 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
2014年手术室工作总结
2014/11/26 职场文书
文明礼仪倡议书
2015/04/28 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
python 解决微分方程的操作(数值解法)
2021/05/26 Python