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

抱怨使用TabularInline时缺少list_display

是因为在使用Django框架的Admin后台管理时,想要在父模型的详情页中以表格形式展示与之关联的子模型的内容,并且希望能够自定义展示的字段。而TabularInline是一种内联模型,用于实现在父模型的详情页中以表格形式展示子模型的内容。然而,与StackedInline不同的是,TabularInline在默认情况下并不支持自定义展示字段。

为了解决这个问题,可以通过在TabularInline子类中定义list_display属性来自定义展示的字段。list_display属性是一个元组或列表,用于指定要在表格中展示的字段。每个字段可以是模型的字段名称或者模型方法。当使用TabularInline时,需要在子类中通过内联模型的verbose_name_plural属性指定子模型的复数形式的名称。

下面是一个示例代码,展示了如何在TabularInline中定义list_display属性:

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

class ChildModelInline(admin.TabularInline):
    model = ChildModel
    extra = 1
    verbose_name_plural = 'Child Models'
    list_display = ('field1', 'field2', 'custom_method')

    def custom_method(self, obj):
        # 自定义模型方法
        return obj.some_field

@admin.register(ParentModel)
class ParentModelAdmin(admin.ModelAdmin):
    inlines = [ChildModelInline]
    list_display = ('field1', 'field2')

在上述示例中,ChildModelInline继承自TabularInline,通过设置model属性指定与之关联的子模型,并通过list_display属性定义要展示的字段。其中,'field1'和'field2'是子模型的字段名,'custom_method'是一个自定义的模型方法。通过设置verbose_name_plural属性指定了子模型的复数形式的名称。

在ParentModelAdmin中,通过inlines属性将ChildModelInline添加为内联模型。list_display属性定义了父模型的字段名。

通过以上的配置,可以在父模型的详情页中以表格形式展示与之关联的子模型的内容,并自定义展示的字段。

关于腾讯云相关的产品和产品介绍链接地址,由于问题要求不提及具体品牌商,无法给出相关链接。您可以在腾讯云的官方网站上查找与云计算相关的产品和服务,以满足您的需求。

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

相关·内容

领券