我有两种型号:PostType1
,PostType1
。
class PostType1(models.Model):
...
created_date = models.DateTimeField(_('created date'), blank=True, null=True)
class PostType2(models.Model):
...
publish_date = models.DateTimeField(_('publish date'), blank=True, null=True)
我询问了两个问题:
posts_type1 = PostType1.objects.all()
posts_type2 = PostType2.objects.all()
我知道怎么把他们锁起来:
posts = chain(posts_type1,posts_type2)
我在找一种按日期降序排序的方法。
这可能吗?或者我应该看看原始sql?
最佳答案
因此,如果您的计划是对两个queryset的并集进行排序,则必须使用sorted
方法。我喜欢这样:
sorted(chain(posts_type1, posts_type2),
key=lambda x: x.created_date if isinstance(x, PostType1)
else x.publish_date)