千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

首页 视频教程 培训课程 师资团队 技术干货 常见问题 面试题 职场就业 零基础学Python 行业资讯
【热点话题】 Python技术干货 Python学习教程 Python学习笔记 Python面试题 Python培训问答 Python培训机构哪些好 Python职场就业
当前位置:Python培训  >  Python学习教程  >  django 扩展user用户字段inlines方式?

django 扩展user用户字段inlines方式?

来源:千锋教育
发布人:wjy
时间: 2022-11-29 17:00:35 1669712435

  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 '' % (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,且该键为主键

django 扩展user用户字段inlines方式?

  用法:

  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后可加各种条件查询

  注:本文部分文字和图片来源于网络,如有侵权,请联系删除。版权归原作者所有!此页面下方声明无效!

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

最新文章NEW

相关推荐HOT

更多>>
开班信息
北京校区
  • 北京校区
  • 大连校区
  • 广州校区
  • 成都校区
  • 杭州校区
  • 长沙校区
  • 合肥校区
  • 南京校区
  • 上海校区
  • 深圳校区
  • 武汉校区
  • 郑州校区
  • 西安校区
  • 青岛校区
  • 重庆校区
  • 太原校区
  • 沈阳校区
  • 南昌校区
  • 哈尔滨校区

14天品质课程免费学

10年以上业内强师带你蜕变精英

提交领取