访问 Django ResultSet 中的order_by外部模型字段



所以想象一下你正在做类似的事情

books = Book.objects.all().order_by('shopsales__qty')

其中shopsales是对ShopSales模型的引用,该模型存储某个商店的某本书的销售情况,因此有一个返回到Book模型的ForeignKey字段和一个qty字段。

现在,上面的内容将从您的书籍表中获取所有书籍,按其他表中的字段排序。为此,生成的 SQL 将具有连接,并将一个shopsales__qty字段添加到 SELECT 字段列表中,以及 Book 模型本身的所有字段。但是,如果您随后浏览退回的书籍,则似乎用于订购的外部字段已被丢弃。(即使它已被选中..为了排序)。

有没有办法将该字段保留在返回的Book对象中?

你可以使用 value()

books = Book.objects.all().order_by('publisher__revenue').value('title','publisher__revenue')

如果需要更多属性,可以将它们添加到value()

最新更新