在我看来, 如果我导入一个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')
返回“'list'对象没有属性'order_by'”错误。
答案 0 :(得分:13)
import operator
ourtags = sorted(ourtags, key=operator.attrgetter('date_added'))
答案 1 :(得分:5)
到目前为止,在代码中,您已经将所有对象加载到内存中并加载到列表中。只需像对待任何旧的Python列表一样对列表进行排序。
>>> import operator
>>> ourtags.sort(key=operator.attrgetter('date_added'))