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

如何在没有外键关系的list_display中显示另一个表中的列?

在没有外键关系的list_display中显示另一个表中的列,可以通过使用list_select_relatedlist_per_page两个属性来实现。

  1. list_select_related属性:该属性用于指定在list_display中显示的字段所在的表。通过在ModelAdmin中设置list_select_related属性为True,可以告诉Django在查询数据时使用select_related方法,从而在一次数据库查询中获取相关联的数据。
  2. list_per_page属性:该属性用于指定每页显示的记录数。通过在ModelAdmin中设置list_per_page属性为一个较大的值,可以确保在显示list_display中的字段时,相关联的数据也能够在同一页中显示。

下面是一个示例代码:

代码语言:txt
复制
from django.contrib import admin
from .models import Model1, Model2

class Model1Admin(admin.ModelAdmin):
    list_display = ('field1', 'get_model2_field')

    def get_model2_field(self, obj):
        return obj.model2.field2

    get_model2_field.short_description = 'Model2 Field2'

    def get_queryset(self, request):
        queryset = super().get_queryset(request)
        queryset = queryset.select_related('model2')
        return queryset

    list_select_related = True
    list_per_page = 100

admin.site.register(Model1, Model1Admin)

在上述代码中,Model1Admin继承自admin.ModelAdmin,并定义了list_display属性来指定要显示的字段。其中,get_model2_field方法用于获取Model2表中的field2字段的值,并在list_display中显示为Model2 Field2get_queryset方法用于在查询数据时使用select_related方法,以获取相关联的数据。最后,通过设置list_select_related为True和list_per_page为一个较大的值,确保相关联的数据能够在同一页中显示。

请注意,以上示例中的代码是基于Django框架的,如果使用其他框架或编程语言,具体实现方式可能会有所不同。

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

相关·内容

Django 外键引用另一个表中的多个字段

在 Django 中,外键(ForeignKey)通常只引用另一张表的一个字段,比如一个主键或一个唯一标识字段。然而,如果我们需要让一个外键引用另一张表中的多个字段,通常有以下几种方法来实现这种关系。...1、问题背景在 Django 中,模型之间的关系通常使用外键(ForeignKey)来建立。外键允许一个模型中的字段引用另一个模型中的主键。然而,有时我们需要在一个模型中引用另一个模型中的多个字段。...例如,我们有一个 product_models 表,其中包含产品的信息,如产品名称、价格和描述。...我们还有另一个 sales_process 表,其中包含销售过程的信息,如潜在客户、员工、首次联系时间等。...以下是如何在 Django 中使用复合主键来实现外键引用另一个表中的多个字段:在 product_models 模型中,添加一个 id 字段作为主键:class product_models(models.Model

10510

Django学习-第七讲:django 中的常用字段、字段属性,外键和表关系、外键操作

如果没有指定这个参数,那么在映射的时候将会使用模型名来作为默认的表名。 2. ordering 设置在提取数据的排序方式。...外键和表关系 在MySQL中,表有两种引擎,一种是InnoDB,另外一种是myisam。如果使用的是InnoDB引擎,是支持外键约束的。外键的存在使得ORM框架在处理表关系的时候异常的强大。...因此这里我们首先来介绍下外键在Django中的使用。 类定义为class ForeignKey(to,on_delete,**options)。...因此在底层,Django为Article表添加了一个属性名_id的字段(比如author的字段名称是author_id),这个字段是一个外键,记录着对应的作者的主键。...即只要这条数据引用了外键的那条数据,那么就不能删除外键的那条数据。 3.SET_NULL:设置为空。如果外键的那条数据被删除了,那么在本条数据上就将这个字段设置为空。

4K30
  • Excel应用实践16:搜索工作表指定列范围中的数据并将其复制到另一个工作表中

    学习Excel技术,关注微信公众号: excelperfect 这里的应用场景如下: “在工作表Sheet1中存储着数据,现在想要在该工作表的第O列至第T列中搜索指定的数据,如果发现,则将该数据所在行复制到工作表...Sheet2中。...用户在一个对话框中输入要搜索的数据值,然后自动将满足前面条件的所有行复制到工作表Sheet2中。” 首先,使用用户窗体设计输入对话框,如下图1所示。 ?...Set wks = Worksheets("Sheet1") With wks '工作表中的最后一个数据行 lngRow = .Range("A" &Rows.Count...Sheets("Sheet2").Cells.Clear '获取数据单元格所在的行并复制到工作表Sheet2 For Each rngFoundCell

    6.1K20

    如何使用 Python 和 SQLAlchemy 结合外键映射来获取其他表中的数据

    在使用 Python 和 SQLAlchemy 时,结合外键映射可以让你在查询时轻松地获取其他表中的数据。...SQLAlchemy 提供了丰富的 ORM(对象关系映射)功能,可以让你通过定义外键关系来查询并获取关联的数据。下面我会演示如何设置外键关系,并通过 SQLAlchemy 查询获取其他表中的数据。...2.3 添加另一个外键如果我们需要在 Order 表中添加另一个外键,例如 product_id 字段,并且希望获取该订单所属产品的信息,那么我们可以在 Order 类中定义一个新的关系属性,使用 relationship...总结结合外键映射,你可以通过 SQLAlchemy 轻松地获取不同表之间关联的数据。你可以使用:relationship:设置表之间的关系(如外键),并通过 ORM 获取关联的数据。...直接访问外键列:直接访问与外键相关的表格数据。这些方法结合起来,使得 SQLAlchemy 的 ORM 功能非常强大且灵活,能够满足大部分关联查询需求。

    14310

    DevExpress控件中的gridcontrol表格控件,如何在属性中设置某一列显示为图片(图片按钮)

    DevExpress控件中的gridcontrol表格控件,如何在属性中设置某一列显示为图片(图片按钮)?效果如下图: ? 通过属性设置,而不用写代码。...由于此控件的属性太多了,就连设置背景图片的属性都有好几个地方可以设置。本人最近要移植别人开发的项目,找了好久才发现这个属性的位置。之前一直达不到这种效果。...然后点击Columns添加列,点击所添加的列再按照如下步骤设置属性: 在属性中找到ColumnEdit,把ColumnEdit的TextEditStyle属性设置为HideTextEditor;  展开...ColumnEdit,把ColumnEdit中的Buttons展开,将其Kind属性设置为Glyph; 找到其中的Buttons,展开,找到其中的0-Glyph,展开,找到其中的ImageOptions...,找到Image属性,即可设置图片,添加一个图片后,运行显示即可达到目的。

    6.1K50

    Django中基表的创建、外键字段属性简介、脏数据概念、子序列化

    断关联表关系 断关联表关系不会影响连表查询操作、可以提升增删改效率、易于后期数据库表的重构,缺点:数据库没有连表检测,容易出现脏数据,需要通过严格的逻辑避免脏数据的产生。...反过来先操作表B后操作表A,更满足逻辑思维,一样可以执行。通过逻辑将A、B表进行连表查询,不会有任何异常。如两张表建立了一对一外键字段,外键在A表,那么先往B表写数据就更合理。...假设图书管理系统中书、出版社、作者、作者详细信息四张表之间的关系如下: """ 表关系 1)Book 和 Publish 一对多:外键在多的一方 Book 2)Book 和 Author 多对多:外键在查询频率高的一方...,作者详情一定没有 DO_NOTHING:外键不会被级联,假设A表依赖B表,B记录删除,A表的外键字段不做任何处理 例子:作者被删了,作者的书还存在,书还是该作者写的;出版社没了,出版社出版的书还在...例子:部门没有了,部门员工里的部门字段改为未分组部门的id字段为NULL 注:多对多字段不能设置on_delete级联关系,如果要处理级联关系,需要手动明确关系,处理表关系中的多个外键 3)db_constraint

    4.3K30

    活字格性能优化技巧(1)——如何利用数据库主键提升访问性能

    数据库主键:指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可以强制表的实体完整性。主键主要是用与其他表的外键关联,以及本记录的修改与删除。...除了能够保证实体的完整性,主键还能加速数据库的操作速度。 数据库外键:外键是用于建立和加强两个表数据之间链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。...这个列就成为第二个表的外键。...数据库索引:在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值得集合和相应的指向表中物理标识这些值得数据页的逻辑指针清单。...当你想和其他房间的人建立关联关系时,会找一个双方都认可的人,作为联系人,这个人就是外键。

    1.2K20

    「数据架构」什么是实体关系图(ERD)?

    在ER模型中,实体显示为圆角矩形,其名称位于顶部,其属性列在实体形状的主体中。下面的ERD示例显示了一个ER实体的示例。 ? 实体属性 属性也称为列,是持有它的实体的属性或特征。...下面的ER关系图示例显示了一个包含一些属性的实体。 ? 主键 主键是一种特殊的实体属性,它惟一地定义了数据库表中的一条记录。换句话说,不能有两个(或多个)记录共享主键属性的相同值。...外键 外键也称为FK,是对表中主键的引用。它用于标识实体之间的关系。注意,外键不一定是唯一的。多条记录可以共享相同的值。下面的ER关系图示例显示了一个具有一些列的实体,其中外键用于引用另一个实体。...例如,“多对多”表可能存在于逻辑或物理数据模型中,但在概念数据模型中,它们只是作为没有基数的关系显示。 概念数据模型示例 ?...绘制范围中涉及的主要实体。 通过添加列来定义实体的属性。 仔细检查ERD,检查实体和列是否足够存储系统的数据。如果没有,则考虑添加其他实体和列。通常,您可以在此步骤中标识一些事务、操作和事件实体。

    5.2K21

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

    list_per_page = 20    actions_on_bottom = True    actions_on_top = False 显示哪些列  用   list_display=[模型字段...控制显示的列,Django 会尝试按照这个顺序解释 list_display 的每个元素: 一个模型的字段。 一个可调用对象。 一个代表 ModelAdmin 属性的字符串。...def atitle(self):        return self.title 按以上方法显示的列是不能排序的,如果让这个方法显示的列也能排序,就给atitle方法的.admin_order_field...None,一个空字符串,或者一个没有元素的可迭代字段,Django 将显示 - (破折号)。   ...,如下截图所示: list_filter 应是一个列表或元组,参数字段可以是模型字段,包括外键字段(注意list_display是不能直接接收外键字段的),会将对应字段的值列出来,一般用于快速过滤有重复值的字段

    1.3K30

    Django—入门

    可以,就是通过接下来要给大家讲的ORM框架。 ORM框架 O是object,也就类对象的意思,R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思,M是mapping,是映射的意思。...同时我们发现多了一个id项,这一项是Django框架帮我们自动生成的,在创建表的时候id就会作为对应表的主键列,并且主键列自动增长。...在我们之后迁移生成表的时候,Django框架就会自动帮我们在图书表和英雄表之间建立一个外键关系。 最后我们可以看到数据库中生成的英雄表如下图: ?...注意上图中booktest_heroinfo表中有一列hbook_id,这一列名为什么不叫hbook? hbook_id是根据HeroInfo类的关系属性hbook生成的,对应着图书表中的主键id。...4.自定义管理页面 在列表页只显示出了BookInfo object,对象的其它属性并没有列出来,查看非常不方便。 Django提供了自定义管理页面的功能,比如列表页要显示哪些值。

    1.9K10

    Django内置Admin

    Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: 依赖APP: django.contrib.auth django.contrib.contenttypes...配置路由 1 2 3 urlpatterns = [         url(r'^admin/', admin.site.urls),     ] 当前配置的路由可以创建一些路由映射关系: /admin...定制Admin 在admin.py中只需要讲Mode中的某个类注册,即可在Admin中实现增删改查的功能,如 1 admin.site.register(models.UserInfo) 但是,这种方式比较简单...= ('user', 'pwd',) ModelAdmin中提供了大量的可定制功能,如 1. list_display,列表时,定制显示的列。...= "列数据为空时,默认显示"       list_display = ('user','pwd','up')       def up(self,obj):         return obj.user

    1.5K90

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

    添加关联对象 现在Question的管理页面有了,但是一个Question应该有多个Choices。而此时管理页面并没有显示。现在有两个方法可以解决这个问题。...在这个表单中,Question字段是一个select选择框,包含了当前数据库中所有的Question实例。Django在admin站点中,自动地将所有的外键关系展示为一个select框。...在我们的例子中,目前只有一个question对象存在。 请注意图中的绿色加号,它连接到Question模型。每一个包含外键关系的对象都会有这个绿色加号。...点击它,会弹出一个新增Question的表单,类似Question自己的添加表单。填入相关信息点击保存后,Django自动将该Question保存在数据库,并作为当前Choice的关联外键对象。...通俗讲就是,新建一个Question并作为当前Choice的外键。 但是,实话说,这种创建方式的效率不怎么样。

    3.6K60

    Django admin管理工具的使用、定制及源码解析

    在admin.py中只需要讲Mode中的某个类注册,即可在Admin中实现增删改查的功能,如: admin.site.register(models.UserInfo) 但是,这种方式比较简单,如果想要进行更多的定制操作...= ('user', 'pwd',) ModelAdmin中提供了大量的可定制功能,如 1. list_display,列表时,定制显示的列。...list_editable 设置默认可编辑字段 list_editable = ['machine_room_id', 'temperature'] #fk_fields 设置显示外键字段...过滤器如果是外键需要遵循这样的语法:本表字段__外键表要显示的字段。...3、一对多关联 还有一种比较特殊的情况,父子表的情况。编辑父表之后,再打开子表编辑,而且子表只能一条一条编辑,比较麻烦。 这种情况,我们也是可以处理的,将其放在同一个编辑界面中。

    4.1K40

    MySQL 常见的面试题及其答案

    不可变性:主键的值不能更改。 5、什么是外键? 外键是一种用于建立两个表之间关联的字段。外键通常指向另一个表中的主键。 6、什么是索引? 索引是一种用于加速查询的数据结构。...使用合适的存储引擎:不同的存储引擎适合不同的应用场景,如InnoDB适用于事务处理,MyISAM适用于查询处理。 避免使用SELECT *:只查询需要的列可以减少数据传输和处理的时间。...在MySQL中,只有使用InnoDB存储引擎才支持事务,MyISAM存储引擎不支持事务。 23、如何在MySQL中实现外键约束? MySQL实现外键约束可以使用FOREIGN KEY约束。...MySQL中实现外键约束的方法: 在创建表时,使用FOREIGN KEY约束指定外键,指向另一个表的主键。 外键约束可以在CREATE TABLE或ALTER TABLE语句中指定。...如果试图插入与另一个表中不存在的外键,则会拒绝插入操作。 可以使用CASCADE选项来自动删除或更新具有关联记录的外键记录。 24、什么是MySQL存储引擎?MySQL支持哪些存储引擎?

    7.1K31

    NoSQL —— 哪个更适合你的数据?

    关系数型据库(Relational Databases) 数据存储在关系数据库的不同表中,每个表都包含多条记录(行)。这些表使用一种或多种关系相互连接。 键定义了表之间的关系。...键是表字段(列),其包含每条记录的唯一值。如果将一个字段定义为表的主键,则该字段可以包含在多个表中,并且可以用于同时访问不同的表。一旦使用主键将其表连接到另一个表,它将在另一个表中被称为外键。...例如,下图显示了某个航空公司的数据库的一部分。在此有两个表——飞行员表和航班表。这两个表已连接,以“PilotId”作为飞行员表的主键。...1 r2I2zlm5bmvfs9UHWqTF-A.png 因此,在飞行员表中,PoilotId是主键;而在航班表中,它是外键。PilotId在此用于形成两个表之间的关系。...列存储数据库(Column-oriented Databases) 顾名思义,在列存储数据库中,数据以列的形式存储和组织。如果你需要存储稀疏数据,则这种类型的数据库很有用。

    2.2K74
    领券