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

如何将带有外键的另一个表中的多个字段添加到list_display?

在Django中,可以通过使用list_display属性来指定在管理界面中显示的字段列表。然而,如果要在list_display中显示与当前模型具有外键关系的另一个表中的多个字段,需要进行一些额外的操作。

首先,需要在当前模型的Admin类中定义一个方法,该方法将返回与外键关联的另一个表中的多个字段的组合。然后,将该方法添加到list_display中。

以下是一个示例:

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

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

    def get_related_fields(self, obj):
        # 获取与外键关联的另一个表中的多个字段的组合
        related_fields = obj.foreign_key_field.related_model.objects.filter(foreign_key=obj)
        return ', '.join([str(field) for field in related_fields])

    get_related_fields.short_description = 'Related Fields'

admin.site.register(Model1, Model1Admin)

在上述示例中,get_related_fields方法用于获取与外键关联的另一个表中的多个字段的组合。related_model属性用于获取与外键关联的模型,然后可以使用该模型进行查询操作。最后,将返回的字段组合转换为字符串,并在list_display中显示。

请注意,上述示例中的Model1foreign_key_field需要根据实际情况进行替换。

这是一个简单的示例,你可以根据自己的需求进行修改和扩展。关于Django的更多信息和示例,请参考腾讯云的Django开发文档

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

相关·内容

Django学习-第七讲:django 常用字段字段属性,关系、操作

5. unique 在这个字段值是否唯一。一般是设置手机号码/邮箱等。...关系 在MySQL有两种引擎,一种是InnoDB,另外一种是myisam。如果使用是InnoDB引擎,是支持约束存在使得ORM框架在处理关系时候异常强大。...一个Category可以有多个文章,一个Article只能有一个Category,并且通过进行引用。...因此在底层,Django为Article添加了一个属性名_id字段(比如author字段名称是author_id),这个字段是一个,记录着对应作者主键。...如果设置这个选项,前提是要指定这个字段一个默认值。 5.SET():如果那条数据被删除了。那么将会获取SET函数值来作为这个值。

3.9K30

Django创建、字段属性简介、脏数据概念、子序列化

更合理) """ Django orm中外字段属性详解 在建之前我们对外字段属性进行了解: 1)related_name在外设置反向查询字段名:正向找字段名,反向找related_name...,假设A依赖B,B记录删除,A字段不做任何处理 例子:作者被删了,作者书还存在,书还是该作者写;出版社没了,出版社出版书还在 SET_DEFAULT:假设A依赖B,B记录删除,A字段重置为...例子:部门没有了,部门员工里部门字段改为未分组部门id字段为NULL 注:多对多字段不能设置on_delete级联关系,如果要处理级联关系,需要手动明确关系,处理关系多个 3)db_constraint...3)如果关联多个字段时,需要设置子序列化字段many=True。 4)子序列化是单向操作,因为作为子系列类必须写在上方,所以不能产生逆方向子序列化。...设置many=True后我们就可以查book多个字段(bookfields对应字段才可以查) class Meta: model = models.Publish

4.3K30
  • Django——ContentType(与多个建立关系)及ContentType-signals使用

    可以看到,我们通过model_class就可以获取对应类。也就是说,今后,我们如果自己定义model如果有关联到這个ContentType上,我们就能找到对应model名称。...对于新鲜事这个功能来说就是使用GenericRelation来产生一个特殊,它不像models.ForeignKey那样,必须指定一个Model来作为它指向对象。...怎么从这张操作记录得到相应操作model呢,这就得用到fields.GenericForeignKey,它是一个特殊,可以指向任何Model实例,在这里就可以通过这个字段来指向类似Post...是再给上面的增加一个,然后重新修改数据库么?显然是不能,一旦数据库被创建了,我们几乎很少再去修改数据,如果再给其添加额外字段,无疑会带来不必要麻烦。...总之,如果一个与其他多个关系,我们可以通过ContentType来解决这种关联。

    4.3K20

    35.Django2.0文档

    它有一个或多个作者(和作者是多对多关联关系[many-to-many]), 只有一个出版商(和出版商是一对多关联关系[one-to-many],也被称作          [foreign key...我们可以对任意字段进行排序,如果需要以多个字段为标准进行排序(第二个字段会在第一个字段值相同情况下被使用到),使用多个参数就可以了,如下: ?...让我们把它添加到BookAdmin,然后看看它效果。...filter_horizontal和filter_vertical选项只能用在多对多字段上, 而不能用于ForeignKey字段。 默认地,管理工具使用`` 下拉框`` 来展现`` `` 字段。...解决这个问题办法是使用`` raw_id_fields`` 选项。它是一个包含字段名称元组,它包含字段将被展现成`` 文本框`` ,而不再是`` 下拉框`` 。

    11.3K100

    在django admin配置搜索域是一个处理方法

    会自动将该行数据以str()化之后进行搜索,但其实并不是这样,如果将加入到搜索域中,需要明确写出来。...,要注明哪个字段,双下划线 list_display = ('book', 'category') # 在页面上显示字段,若不设置则显示 models.py __unicode__(self...系统搜索时可能会出现“related Field has invalid lookup: icontains”错误,主要原因是查询是需要指定相应字段。...不应该只是一个model,而该是另一个明确一个字段。 所以我们需要指定特定字段 “本字段__所在需查询字段”。...补充知识:Djangomodel中使用,但在页面上显示是xxx_object?

    3.8K20

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

    Django想要把模型类聚合得到想要数据可以用F对象。 比如有模型类A和B,A和B之间有关联在一起,A是子表,B是父(反过来没试过。。...在应用类列表管理显示页面,显示父字段 可以让Students,显示父GradesLevel字段 在models.py里Students类里,写上如下代码: class Students(...models.Model): # 写一个方法,定义在管理页面上能够显示字段字段 # grade为Students模型,level为Grades模型,那么为Level模型字段...添加是'模型类字段' # 如果是需要遵循这样语法:本字段__(双下划线)检表字段字段__最终要显示字段。...为子表(有所在) class ScoreInline(admin.TabularInline): # Score 必须是models.py模型名称,大小写必须要匹配.这个模型为子表,以便可以被父编辑

    1.4K20

    django后台管理-admin

    0922自我总结 django后台管理-admin 一.模型注册 admin.py 注册方式一: #在对于注册appadmin文件中导入模型然后注册模型 admin.site.register(导入模型类...@admin.register(Blog) class BlogAdmin(admin.ModelAdmin): #listdisplay设置要显示在列表字段(id字段是Django模型默认主键...设置显示字段 fk_fields = ('machine_room_id',) 2、筛选器 from django.contrib import admin from blog.models...import Blog #Blog模型管理器 @admin.register(Blog) class BlogAdmin(admin.ModelAdmin): list_display...一般ManyToManyField多对多字段用过滤器;标题等文本字段用搜索框;日期时间用分层筛选。 过滤器如果是需要遵循这样语法:本表字段__要显示字段

    87310

    python测试开发django-23.admin列表页优化和排序

    list_display = ('__str__',) # 显示字段 list_display_links = () # 可点击链接字段...设置默认可编辑字段 有些字段如果想在列表页就能直接编辑,可以加个list_editable参数,这样无需进子页面,可以直接编辑列表页上字段 如果有多个参数设置,元组里面逗号隔开就行,如 list_editable...= (‘body’, ‘auth’, ) class ControlArticle(admin.ModelAdmin): # 显示字段 list_display = ('title...= ('auth',) # 注册Article admin.site.register(models.Article, ControlArticle) 注意:title是默认link链接字段,这个不能添加到...(‘title’, ‘body’) class ControlArticle(admin.ModelAdmin): # 显示字段 list_display = ('title', '

    83830

    Django项目于之在线教育平台网站实战开发(完结)

    2.xadmin后台数据设定默认字段排序 比如当用户点击查看课程列表时,整个列表数据是乱序,比如点击数 想让课程列表数据按照点击数倒序进行排序,就需要在对应注册类添加如下ordering...'] exclude = ['click_nums'] 刷新页面则,不显示点击数字段 5.增加课程时修改选择样式 增加一门课程,需要通过下拉框来选择对应课程机构,当数据庞大时,使用下拉框就没有搜索框来方便...使用 在xadmin后台管理为课程添加章节信息时,不能在增加课程页面直接添加,而是需要退出课程到章节字段中去选择课程后才能添加课程章节信息,在xadmin也能像django admin那样去做到在一个页面直接添加信息...,很是方便 需要注意是,inline只能完成一成嵌套,不能完成多层,比如课程—章节—视频这就没法,但一个课程对应多个,就可以在inlines 属性添加多个类,因为是列表类型变量,在课程增加页面...,就需要在课程所在模型类Course添加is_banner是否轮播字段 如果想在课程管理中产生另一个数据,这个数据只显示轮播课程数据那么就需要在courses/models创建一个轮播课程模型类

    1.2K30

    测试开发进阶(二十二)

    ,需要在当前应用下models.py文件定义 一个数据库模型类相当于一个数据(Table) 一个数据库模型类需要基础Model或者其子类 定义一个类属性,就相当于数据库一个字段( first_name...字段 max_length 最大长度 unique 设置当前参数唯一 verbose_name 设置人性化字段名 help_text 用于API文档中文名 null 允许为空 black 设置前端可以不传递...修改展示部分 fields 指定在修改「新增」需要显示字段 list_display 指定要列出字段 from django.contrib import admin from .models...*一个项目中有多个接口 那么需要在「多」一侧创建 * 项目为父「一」,接口为「多」子表 class Interfaces(models.Model): name = models.CharField...:当父删除之后,该字段处理方式 models.CASCADE:子表也会被删除 models.SET_NULL:当前会被设置为None models.PROTECT:会报错 models.SET_DEFAULT

    64930

    在Oracle数据库中外创建

    在Oracle数据库是强制实施参照完整性一种方式,使用就意味着一个值在另一个也必须出现。 被引用称为父,而带有称为子表。子表通常会引用父主键。...它只包含一个字段 – supplier_id字段。 然后,在products上创建了一个名为fk_supplier,该根据supplier_id字段引用supplier。...也可以创建一个具有多个字段,如下例所示: CREATE TABLE supplier ( supplier_id numeric(10) not null, supplier_name varchar2...我们创建了一个名为fk_supplier,它根据supplier_id字段引用suppliersupplier_id字段。...我们也可以创建一个具有多个字段,如下例所示: ALTER TABLE products ADD CONSTRAINT fk_supplier FOREIGN KEY (supplier_id,

    85520
    领券