获取转换为列表的两个组合Django查询集中的最新文章

时间:2014-12-16 16:14:44

标签: python django

我希望能够检索添加到我的ArticleSharedArticle模型的最新文章。

import itertools

articles = Article.objects.all()[:15]
shared = SharedArticle.objects.all()[:15]

all_articles = sorted(itertools.chain(articles, shared), 
                  key=lambda x: x.date_created, reverse=True)[-10:]

在合并这两个查询结果后,我得到了总共30个中的最新10个,并且查询结果的唯一共同点是date_created列。

我如何从articles获取最新的sharedall_articles

1 个答案:

答案 0 :(得分:2)

第一篇文章:

next(obj for obj in all_articles if isinstance(obj, Article))

最后一篇文章

next(obj for obj in all_articles[::-1] if isinstance(obj, Article))

第一个SharedArticle:

next(obj for obj in all_articles if isinstance(obj, SharedArticle))

最后的SharedArticle

next(obj for obj in all_articles[::-1] if isinstance(obj, SharedArticle))