所以想象一下你正在做类似的事情
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()