在我的观点中,如果我导入一个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))

然后,如何按“ date_added”订购“ ourtags”?

不摇摆不定,

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

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

有帮助吗?

解决方案

import operator

ourtags = sorted(ourtags, key=operator.attrgetter('date_added'))

其他提示

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

>>> import operator
>>> ourtags.sort(key=operator.attrgetter('date_added'))
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top