django 扩展user用户字段inlines方式
作者:森林屿麓 发布时间:2022-02-28 00:50:14
标签:django,扩展,user,inlines
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 = # 筛选的值小于等于指定的值
来源:https://blog.csdn.net/u013967628/article/details/83626553
0
投稿
猜你喜欢
- <form name="frm"><select name=school onchange="
- <script>function getJsFile(url, callBack){
- 本文实例讲述了Python简单获取网卡名称及其IP地址的方法。分享给大家供大家参考,具体如下:windows上想知道网卡和IP地址,可以使用
- 今天在写BLOG的Trackback时,需要用到当前页的URL地址,并且包括?后的所有参数。在网上看到以下的这段ASP代码,它的
- 导读:SQL Server数据迁移的知识之前已经为大家介绍了很多,比如SQL Server数据库迁移方法,接下来就为大家详细介绍SQL Se
- Msg 102, Level 15, State 1, Line 3 Incorrect syntax near '+'.
- 1. LEFT OUTER JOIN:左外关联 SELECT e.last_name, e.department_id, d.departm
- 在实际工作中,有时候需要对判断字符串是否为合法的json格式解决方法使用json.loads,这样更加符合‘Pythonic'写法代
- 环境Laravel 5.4原理在Laravel中,门面为应用服务容器中绑定的类提供了一个“静态”接口
- 自定义过滤器就是有一个或两个参数的Python函数: (输入)变量的值  
- 内容摘要:ASP与存储过程(Stored Procedures)的文章不少,但是我怀疑作者们是否真正实践过。我在初学时查阅过大量相
- 本文主要给大家介绍了关于Golang中switch和select用法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:一、swi
- 上一章节我们学习了如何生成 word 文档以及在文档行中添加各种内容,今天我们基于上一章节的内容进行添砖加瓦 —>
- 在使用SQL Server 的过程中,由于经常需要从多个不同地点将数据集中起来或向多个地点复制数据,所以数据的导出,导入是极为常见的操作.我
- 相比较pandas,numpy并没有很直接的rolling方法,但是numpy 有一个技巧可以让NumPy在C代码内部执行这种循环。这是通过
- 目录1. jieba 分词2. pkuseg 分词3. FoolNLTK 分词4. THULAC大家好,我是安果!分词在自然语言处理中有着常
- 很简单的方法,但很实用。用过新浪邮箱的朋友应该会知道此脚本的效果。如果您提交的数据处理时间很长,用这个做为提示很不错的.将下面的代码复制到&
- 本文实例讲述了smarty简单分页的实现方法,分享给大家供大家参考。具体实现方法如下:以下是模板中的smarty代码,用smarty简单的代
- 安装python中文分词库jieba法1:Anaconda Prompt下输入conda install jieba法2:Terminal下
- DataFrame的行和列:df[‘行’, ‘列’]Data