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中非常实用的一些功能和函数分享
Feb 14 Python
Python使用chardet判断字符编码
May 09 Python
使用Python导出Excel图表以及导出为图片的方法
Nov 07 Python
独特的python循环语句
Nov 20 Python
python 与服务器的共享文件夹交互方法
Dec 27 Python
浅谈Python反射 &amp; 单例模式
Mar 21 Python
Django Sitemap 站点地图的实现方法
Apr 29 Python
Python基于机器学习方法实现的电影推荐系统实例详解
Jun 25 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
Jul 11 Python
Python数据可视化:泊松分布详解
Dec 07 Python
Python 如何创建一个简单的REST接口
Jul 30 Python
Python爬虫 简单介绍一下Xpath及使用
Apr 26 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连接mssql:pdo odbc sql server
2011/07/20 PHP
php购物车实现代码
2011/10/10 PHP
Thinkphp实现MySQL读写分离操作示例
2014/06/25 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
2015/09/20 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
一段实时更新的时间代码
2006/07/07 Javascript
js猜数字小游戏的简单实现代码
2013/07/02 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
jQuery 浮动导航菜单适合购物商品类型的网站
2014/09/09 Javascript
在Javascript中处理数组之toSource()方法的使用
2015/06/09 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
node.js实现回调的方法示例
2017/03/01 Javascript
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
Typescript的三种运行方式(小结)
2019/09/18 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
浅谈vue项目,访问路径#号的问题
2020/08/14 Javascript
python逐行读取文件内容的三种方法
2014/01/20 Python
Python实现购物车功能的方法分析
2017/11/10 Python
python进行两个表格对比的方法
2018/06/27 Python
python字典改变value值方法总结
2019/06/21 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
Python数学形态学实例分析
2019/09/06 Python
pytorch 修改预训练model实例
2020/01/18 Python
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
学校出纳员岗位职责
2014/03/18 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书