【发布时间】:2014-02-11 04:20:12
【问题描述】:
我有以下 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')
... 将没有作者的出版物聚集在一起,并在该组中根据编辑进行排序,这不是我想要的。实际上,它应该使用可用于出版物的任何作者或编辑,并按此排序。
这种排序必须发生在数据库级别,结果集可能很大。
【问题讨论】: