4

在我看来,如果我导入一个 itertools 模块:

from itertools import chain

我用它链接了一些对象:

franktags = Frank.objects.order_by('date_added').reverse().filter(topic__exact='art') 
amytags = Amy.objects.order_by('date_added').reverse().filter(topic__exact='art') 
timtags = Tim.objects.order_by('date_added').reverse().filter(topic__exact='art') 
erictags = Eric.objects.order_by('date_added').reverse().filter(topic__exact='art')

ourtags = list(chain(franktags, amytags, timtags, erictags))

然后我如何按“添加日期”订购“我们的标签”?

毫不奇怪,

ourtags = list(chain(franktags, amytags, timtags, erictags)).order_by('date_added')

返回“'list' 对象没有属性 'order_by'”错误。

4

2 回答 2

14
import operator

ourtags = sorted(ourtags, key=operator.attrgetter('date_added'))
于 2009-07-15T04:15:09.587 回答
5

到代码中的这一点,您已经将所有对象加载到内存和列表中。就像对任何旧的 Python 列表一样对列表进行排序。

>>> import operator
>>> ourtags.sort(key=operator.attrgetter('date_added'))
于 2009-07-15T04:13:54.363 回答