我有两种型号:PostType1PostType1

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)

10-01 04:35