سؤال

في آرائي، إذا استوردت وحدة 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))

كيف يمكنني إذن طلب "Ourtags" من قبل "date_added"؟

غير مدلل،

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

إرجاع كائن "قائمة" لا يحتوي على خطأ "ترتيب الطلب".

هل كانت مفيدة؟

المحلول

import operator

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

نصائح أخرى

بهذه النقطة في التعليمات البرمجية، قمت بالفعل بتحميل جميع الكائنات في الذاكرة وفي قائمة. مجرد فرز القائمة مثلك ستؤدي أي قائمة بيثون القديمة.

>>> import operator
>>> ourtags.sort(key=operator.attrgetter('date_added'))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top