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通过解析网页实现看报程序的方法
Aug 04 Python
Python 异常处理的实例详解
Sep 11 Python
Python将多个list合并为1个list的方法
Jun 27 Python
flask框架中勾子函数的使用详解
Aug 01 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
python深copy和浅copy区别对比解析
Dec 26 Python
Python使用socketServer包搭建简易服务器过程详解
Jun 12 Python
python为什么会环境变量设置不成功
Jun 23 Python
Django数据模型中on_delete使用详解
Nov 30 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 Python
Pyecharts 中Geo函数常用参数的用法说明
Feb 01 Python
关于Python中进度条的六个实用技巧分享
Apr 05 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
初学CAKEPHP 基础教程
2009/11/02 PHP
浅析php中jsonp的跨域实例
2013/06/21 PHP
php中stdClass的用法分析
2015/02/27 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
包含中国城市的javascript对象实例
2015/08/03 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
2015/08/31 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
基于better-scroll 实现歌词联动功能的代码
2020/05/07 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
python 自动提交和抓取网页
2009/07/13 Python
用python删除java文件头上版权信息的方法
2014/07/31 Python
Python多进程同步Lock、Semaphore、Event实例
2014/11/21 Python
利用Python实现Windows定时关机功能
2017/03/21 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
2017/06/15 Python
详解python实现读取邮件数据并下载附件的实例
2017/08/03 Python
python输入错误密码用户锁定实现方法
2017/11/27 Python
微信跳一跳python辅助脚本(总结)
2018/01/11 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
python多线程实现TCP服务端
2019/09/03 Python
如何通过命令行进入python
2020/07/06 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
建材业务员岗位职责
2013/12/08 职场文书
教师求职信范文分享
2013/12/27 职场文书
审美与表现自我评价
2015/03/09 职场文书