首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

管理list_display上的django反向外键失败

在Django中,如果要在admin后台管理界面中显示反向外键字段,可以使用list_display属性。然而,有时候在使用list_display时可能会遇到一些问题,导致反向外键字段无法正确显示。以下是一些可能导致问题的原因和解决方法:

  1. 未正确设置反向外键字段的related_name属性:在定义反向外键字段时,需要设置related_name属性,以便在管理界面中引用该字段。确保related_name属性的值是唯一的,并且没有与其他字段冲突。例如,如果有一个模型A与模型B存在反向外键关系,可以在模型B中设置related_name='a_related',然后在list_display中使用'a_related'来显示该字段。
  2. 未在模型的admin类中正确设置list_display属性:在模型的admin类中,需要设置list_display属性来指定要显示的字段列表。确保在list_display中包含了反向外键字段的名称。例如,如果要显示名为a_related的反向外键字段,可以在list_display中添加'a_related'
  3. 反向外键字段是多对多关系:如果反向外键字段是多对多关系,需要使用list_display__str__方法来显示该字段。例如,如果有一个名为a_related的多对多反向外键字段,可以在list_display中添加'a_related__str__'
  4. 反向外键字段是一个QuerySet:如果反向外键字段是一个QuerySet,需要使用list_display__str__方法来显示该字段。例如,如果有一个名为a_related的反向外键字段是一个QuerySet,可以在list_display中添加'a_related__str__'

总结起来,要管理list_display上的Django反向外键,需要确保正确设置了反向外键字段的related_name属性,并在模型的admin类中正确设置了list_display属性。如果反向外键字段是多对多关系或QuerySet,需要使用__str__方法来显示该字段。以下是一个示例:

代码语言:python
代码运行次数:0
复制
# models.py
class ModelA(models.Model):
    name = models.CharField(max_length=100)

class ModelB(models.Model):
    model_a = models.ForeignKey(ModelA, on_delete=models.CASCADE, related_name='model_b')

# admin.py
class ModelBAdmin(admin.ModelAdmin):
    list_display = ('model_a',)  # 显示反向外键字段

admin.site.register(ModelB, ModelBAdmin)

在上述示例中,ModelB模型与ModelA模型存在反向外键关系,通过设置related_name='model_b',可以在ModelA模型的admin界面中显示反向外键字段model_b

腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅为示例,具体的产品选择应根据实际需求进行评估和选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django+xadmin打造在线教育平台(二)

代码 github下载 三、xadmin后台管理 3.1.xadmin安装 django2.0安装(源码安装方式): https://github.com/sshwsfc/xadmin/tree/...django2 把zip文件放到pip目录下,运行下面命令安装: pip install xadmin-django2 是文件README.rst 出现了 Unicode 解码错误,这个文件是没有什么用处...运行项目,进后台管理界面如下: ?  3.5.xadmin全局配置 将全局配置修改: 如左上角:django Xadmin。下面的我公司 主题修改,app名称汉化,菜单收叠。...把全站配置放在users\adminx.py中:  (1)添加主题功能 from xadmin import views # 创建xadmin最基本管理器配置,并与view绑定 class BaseSetting...一篇:Django+xadmin打造在线教育平台(一) 下一篇:Django+xadmin打造在线教育平台(三)

7K80
  • Django3.2边学边记—Adimn站点管理

    准备工作 创建管理用户名和密码:  1 python manage.py createsuperuser   根据提示创建用户名 密码 在admin.py中注册模型类 1234567 from django.contrib...创建模型管理类来管理某个模型在后台显示页面形式 ModelAdmin类可以控制不同模型在Admin界面中展示方式,主要包括在列表页展示方式、添加修改页展示方式 上文中展示了TestAdmin类一种注册方法...控制显示列,Django 会尝试按照这个顺序解释 list_display 每个元素: 一个模型字段。 一个可调用对象。 一个代表 ModelAdmin 属性字符串。...,如下截图所示: list_filter 应是一个列表或元组,参数字段可以是模型字段,包括外字段(注意list_display是不能直接接收外字段),会将对应字段值列出来,一般用于快速过滤有重复值字段...我理解就是分组整体匹配(Django3.2新增),例如,如果用户搜索 "john winston" 或 'john winston',Django 会做相当于这个 SQL  WHERE 子句: 1

    1.3K30

    Python:Django搭建博客

    管理员 按照之前文章:Django2.0 正确配置 MySQL,配置好 MySQL 数据库 接下来再进行数据库迁移 (DjangoBlogEnv) hls-MacBook-Pro:DjangoBlog...Django 管理,需要输入用户名密码,输入用户名密码后可以跳转到 Django 管理页面表示 Django-admin 设置成功 数据库表分析 文章表 字段 类型 备注 id PrimaryKey...OK 用 django-admin 管理 数据库迁移完成会在 post 应用下生成一个迁移文件,接下来在 django-admin 中注册模型,便于我们用 django-admin 管理 /post...@admin.register(Article) class ArticleAdmin(admin.ModelAdmin): # 在后台显示字段 list_display...管理后台,查看模型是否可以被管理,尝试点击添加与修改,没问题就说明注册成功 集成 Markdown 很多人喜欢用 markdown 格式写博客,我们可以通过集成 Django-mdeditor 来实现这个功能

    56500

    被解放姜戈05 黑面管家

    Django提供一个管理数据库app,即django.contrib.admin。这是Django最方便功能之一。通过该app,我们可以直接经由web页面,来管理我们数据库。...它们来自Django预装Auth模块。我们将在以后处理用户管理问题。 “我已经管理这个庄园几十年了。” 复杂模型 管理页面的功能强大,完全有能力处理更加复杂数据模型。...Inline显示 上面的Contact是Tag外部,所以有外部参考关系。而在默认页面显示中,将两者分离开来,无法体现出两者从属关系。...我们也可以自定义该页面的显示,比如在列表中显示更多栏目,只需要在ContactAdmin中增加list_display属性: from django.contrib import admin from...总结 Django管理页面有很丰富数据库管理功能,并可以自定义显示方式,是非常值得使用工具。 “谁,也逃不出我眼睛!”

    1.2K90

    Django 1.10中文文档-第一个应用Part7-自定义管理站点

    现在先来试试重新排序表单字段。...Django在admin站点中,自动地将所有的外关系展示为一个select框。在我们例子中,目前只有一个question对象存在。 请注意图中绿色加号,它连接到Question模型。...每一个包含外关系对象都会有这个绿色加号。点击它,会弹出一个新增Question表单,类似Question自己添加表单。...填入相关信息点击保存后,Django自动将该Question保存在数据库,并作为当前Choice关联外对象。通俗讲就是,新建一个Question并作为当前Choice。...它可以用Django模板系统轻松改变。 Django管理站点是用Django自己制作出来,它界面代码使用Django自己模板系统。

    3.6K60

    Django admin 一些有用设置

    Django自带后台管理Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以在各个appadmin.py文件中进行控制。以下是我最近摸索总结出比较实用配置。...1 2 3 4 5 6 7 8 9 from django.contrib import admin from blog.models import Blog    #Blog模型管理器 class...(id字段是Django模型默认主键)     list_display = ('id', 'caption', 'author', 'publish_time')          #list_per_page...后台管理重要功能之一,而且Django为我们提供了一些实用筛选器。...过滤器如果是外需要遵循这样语法:本表字段__外表要显示字段。如:“user__user_name” 3、颜色显示 想对某些字段设置颜色,可用下面的设置: ?

    2.6K70

    Django 上传图片和Admin站点5.2

    上传图片 当Django在处理文件上传时候,文件数据被保存在request.FILES FILES中每个为中name 注意:FILES只有在请求方法为...后台管理,遇到ImageField类型属性会出现一个file框,完成文件上传 手动上传模板代码 文件上传 <body...,默认Admin被启用 1.创建管理用户名和密码 python manage.py createsuperuser 然后按提示填写用户名、邮箱、密码 2.在应用内admin.py文件完成注册,就可以在后台管理中维护模型数据...search_fields = ['hname'] 增加与修改页选项 fields:显示字段顺序,如果使用元组表示显示到一行 class HeroAdmin(admin.ModelAdmin):.../templates)将模板页面的源文件admin/base_site.html拷贝到第一步建好目录里 编辑base_site.html文件 刷新页面,发现以刚才编辑页面效果显示 其它管理后台模板可以按照相同方式进行修改

    47230

    35.Django2.0文档

    应用程序`` django.contrib.auth`` 包含自身`` admin.py`` ,所以Users和Groups能在管理工具中自动显示。...其它django.contrib应用程序,如django.contrib.redirects,其它从网上下在第三方Django应用程序一样,都会自行添加到管理工具。  ...也就是说,这些修改实质是构成模块一部分,并且正好被管理工具使用,而不是专门针对管理工具。 除了这些,Django还提供了大量选项让你针对特别的模块自定义管理工具。...如果你想选择多项,你必须还要按下Ctrl。 虽然管理工具因此添加了注释(help_text),但是当它有几百个选项时,它依然显得笨拙。 更好办法是使用 filter_horizontal。...filter_horizontal和filter_vertical选项只能用在多对多字段, 而不能用于ForeignKey字段。 默认地,管理工具使用`` 下拉框`` 来展现`` 外`` 字段。

    11.3K100

    使用Django实现把两个模型类数据聚合在一起

    Django中想要把模型类聚合得到想要数据可以用F对象。 比如有模型类A和B,A和B之间有外关联在一起,A是子表,B是父表(反过来没试过。。...models.Model): # 写一个方法,定义在管理页面上能够显示字段字段 # grade为Students模型外检表,level为Grades模型外检表,那么为Level模型字段...添加是'模型类字段' # 如果是外需要遵循这样语法:本表外字段__(双下划线)外检表字段或外检表字段__最终外表要显示字段。...使用DjangoTabularInline,可以解决这个问题,在父表里对子表进行编辑: 所有代码都在admin.py里写,具体如下: # 一对多关联表编辑,让父表管理配置页面能同时编辑子表,以下Score...以上这篇使用Django实现把两个模型类数据聚合在一起就是小编分享给大家全部内容了,希望能给大家一个参考。

    1.4K20
    领券