Вопрос

В моих взглядах, если я импортирую модуль итул:

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» на «date_added»?

не удивительно,

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