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实现每次处理一个字符的三种方法
Oct 09 Python
python机器学习库常用汇总
Nov 15 Python
python实现支付宝当面付(扫码支付)功能
May 30 Python
python3 kmp 字符串匹配的方法
Jul 07 Python
python矩阵的转置和逆转实例
Dec 12 Python
用Python逐行分析文件方法
Jan 28 Python
详解Django 时间与时区设置问题
Jul 23 Python
使用python快速实现不同机器间文件夹共享方式
Dec 22 Python
Python使用uuid库生成唯一标识ID
Feb 12 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
May 22 Python
keras中epoch,batch,loss,val_loss用法说明
Jul 02 Python
OpenCV-Python实现图像平滑处理操作
Jun 08 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 编程安全性小结
2010/01/08 PHP
如何让CI框架支持service层
2014/10/29 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
Jquery 数组操作大全个人总结
2013/11/13 Javascript
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
javascript学习小结之prototype
2015/12/03 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
微信 jssdk 签名错误invalid signature的解决方法
2019/01/14 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
jQuery实现简单弹幕效果
2019/11/28 jQuery
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
2020/06/16 Javascript
Python Mysql自动备份脚本
2008/07/14 Python
在SAE上部署Python的Django框架的一些问题汇总
2015/05/30 Python
python邮件发送smtplib使用详解
2020/06/16 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
关于Python-faker的函数效果一览
2019/11/28 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
2020/11/17 Python
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
外贸主管求职简历的自我评价
2013/10/23 职场文书
上学迟到的检讨书
2014/01/11 职场文书
个人银行贷款担保书
2014/04/01 职场文书
党员一帮一活动总结
2014/07/08 职场文书
党员四风剖析材料
2014/08/27 职场文书
2015年全国保险公众宣传日活动方案
2015/05/06 职场文书
Nginx虚拟主机的配置步骤过程全解
2022/03/31 Servers
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS