0

ここで同様の回答があることは知っていますが、私の質問は同じではありません。マルチテーブル継承を使用して 2 種類のエンティティをモデル化していますが、どちらも投稿を作成できます。私の問題は、すべての投稿をまとめて表示するビューを作成しようとするときです。

したがって、Entity モデルがあり、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 モデルを 1 つだけ持つためです。

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 と結合し、結果間のユニオンを作成する必要があります (一部のフィールドを null のままにします)。次に、日付順に並べ替えることができるはずです。DRF ビューとシリアライザーでそれを行うにはどうすればよいですか?

4

0 に答える 0