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))

「date_added」で「ourtags」を注文するにはどうすればよいですか?

驚くべきことではありませんが、

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 に答える