1

我以为我知道这是如何工作的,但是有一个我似乎无法弄清楚的错误。

我有一个查询集,其中每个模型都有一个“热度()”方法,该方法动态返回热度值。

这是我的代码:

 from item.models import Item

 items = Item.objects.all()
 items = sorted(items, key=lambda x: x.hotness, reverse=True)


 # it does not work.

 for i in items:

     print i.hotness() # totally out of order, not even close

有什么想法吗?谢谢。

4

1 回答 1

3

在您的确切用例中,您不会在 QuerySet 上使用它之前将其转换为列表sorted()

items = list(Item.objects.all())
items = sorted(items, key=lambda x: x.hotness(), reverse=True)

应该管用。

于 2013-09-08T05:41:46.457 回答