首页
学习
活动
专区
工具
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框架的,如果使用其他框架或编程语言,具体实现方式可能会有所不同。

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

相关·内容

3分25秒

063_在python中完成输入和输出_input_print

1.3K
领券