0

我知道这里有类似的答案但我的问题不一样。我正在使用多表继承来对 2 种不同类型的实体进行建模,并且它们都可以创建帖子。我的问题是在尝试创建一个同时显示所有帖子的视图时。

所以我有我的实体模型,然后是我的 ETypeA 和 ETypeB 模型,它们看起来像这样:

class Entity(models.Model):
    pass

class ETypeA(Entity):
    # Here are some attributes
    pass

class ETypeB(Entity):
    # Here are some attributes
    pass

如您所见,Entity 模型只是为了在 ETypeA 和 ETypeB 之间拥有一个公共主键。这样做的原因是只有一个常见的 Post 模型,如下所示:

class Post(models.Model):
    transmitter = models.ForeignKey(Entity, on_delete=models.CASCADE)
    text = models.CharField(max_length=500, null=False, blank=False)

现在的问题是,当我创建一个视图来显示帖子时,我只得到发送者的 id,但我需要全部信息。在 SQL 中执行此操作的方式应该是使用 ETypeA 连接结果,然后使用 ETypeB 并在结果之间建立联合(将某些字段保持为空)。然后我应该能够按日期对它们进行排序。如何使用 DRF 视图和序列化程序来做到这一点?

4

0 回答 0