次の Django モデルがあります (ここでは大幅に簡略化されています)。
class Author:
name = models.TextField()
class Editor:
name = model.TextField()
class Publication:
authors = models.ManyToManyField(Author)
editors = models.ManyToManyField(Editor)
出版物には、著者または編集者のいずれかを含めることができますが、両方を含めることはできません。著者と編集者の統一による出版物のリストをアルファベット順に並べたいと思います。言い換えれば、著者と編集者の連結である仮想フィールドで注文したいと思います。creators
クエリ:
Publication.objects.all().order_by('authors__name', 'editors__name')
...著者がいない出版物をまとめて、そのグループ内で編集者に従って並べ替えますが、これは私が望んでいるものではありません。事実上、出版物に利用できる著者または編集者を使用し、それによってソートする必要があります。
この順序付けはデータベース レベルで行う必要があり、結果セットは膨大になる可能性があります。