Domanda

nel mio punto di vista, se ho importare un modulo itertools:

from itertools import chain

e mi incateno alcuni oggetti con esso:

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

Come faccio allora ordine "ourtags" da parte del "DATE_ADDED"?

Non sorprendentemente,

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

restituisce un "oggetto 'list' non ha alcun attributo 'order_by'" errore.

È stato utile?

Soluzione

import operator

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

Altri suggerimenti

A questo punto del codice, hai già caricato su tutti gli oggetti in memoria e in un elenco. Basta ordinare l'elenco come si farebbe con qualsiasi vecchia lista Python.

>>> import operator
>>> ourtags.sort(key=operator.attrgetter('date_added'))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top