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

时间:2015-03-16 13:46:17

标签: django

所以想象你正在做类似

的事情
books = Book.objects.all().order_by('shopsales__qty')

其中shopsales是对ShopSales模型的引用,该模型存储特定商店的特定图书的销售情况,因此ForeignKey字段返回Book模型和qty字段。

现在,上面的内容将从您的图书表格中获取所有图书,这些图书由不同表格中的字段排序。为此,生成的SQL将具有连接,并将shopsales__qty字段添加到SELECT字段列表以及Book模型本身的所有字段。但是,如果您随后浏览了退回的书籍,则看起来用于订购的外国字段已被丢弃..(即使已经选择了......为了订购)。

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

1 个答案:

答案 0 :(得分:0)

您可以使用value()

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

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