我知道这里有类似的答案,但我的问题不一样。我正在使用多表继承来对 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 视图和序列化程序来做到这一点?