Django:在管理页面 TabularInline 上具有一对多关系的多个模型

Django: multiple models with one-to-many relation on admin page TabularInline

我在现有数据库中有多个模型,它们都与另一个模型存在多对一关系。例如:

class Collection(models.Model):
        start = models.DateTimeField()
        end = models.DateTimeField(blank=True, null=True)

        class Meta:
            managed = False
            db_table = 'Program'

class ItemA(models.Model):
    collection = models.ForeignKey(
        'Collection', models.CASCADE, db_column='Collection_id')
    ...

    class Meta:
        managed = False
        db_table = 'ItemA'

class ItemB(models.Model):
    collection = models.ForeignKey(
        'Collection', models.CASCADE, db_column='Collection_id')
    ...

    class Meta:
        managed = False
        db_table = 'ItemB'

我想做的是在集合模型的管理页面上将这些模型显示在一个 TabularInline 中。我还希望能够过滤模型。这可能没有数据库中的继承吗? (我不想添加一般项目 table)。在文档中,我只能找到如何将 TabularInline 用于单个模型。所以我的问题基本上是:解决这个问题的最佳方法是什么?是否可以定义某种视图模型 dat 不在数据库中,但可用于显示 TabularInline 中的所有项目?

我最终在我的数据库中使用了一个视图,这意味着我不需要添加 table。在 Django 中,我创建了一个模型来处理视图:

class Item(models.Model):
    collection = models.ForeignKey(
        'Collection', models.CASCADE, db_column='Collection_id')
    ...

    class Meta:
        managed = False
        db_table = 'Item' # This is not a table, but a view

我使用多个 SELECT 语句和 UNION:

定义了视图
CREATE OR REPLACE VIEW `Item` AS
SELECT CONCAT('itemA_',id) as id, name, ... FROM ItemA 
UNION
SELECT CONCAT('itemB_',id) as id, name, ... FROM ItemB
...