对于可能包含两种不同类型的Django模型对象的列表,在不同字段上排序的最Pythonic方法是什么?这是一个例子:
模特:
class A(models.Model):
creation_time = models.DateTimeField()
class B(models.Model):
last_updated = models.DateTimeField()
观点:
a = A.objects.all().order_by('creation_time')
b = B.objects.all().order_by('last_updated')
c = list(chain(a, b))
# Now I want to organize the contents of c by date pertaining to each object.
如何使用每个对象上的不同键进行排序?
答案 0 :(得分:3)
使用
对列表c
进行排序
c.sort(key=lambda x: getattr(x, 'creation_time', None) or getattr(x, 'creation_date', None))