我有一个Django视图,我通过从数据库中获取所有Posts并将其剪切到前四个中来获取'top_posts'的第一个查询集。在同一个视图中,我想通过过滤类别为“politics”的帖子来获得“politics_posts”。但我希望帖子出现在“top_posts”中,而不是出现在“politics_posts”中。我试过使用排除,但它似乎不工作。下面是我目前不工作的观点:
def homepage(request):
top_posts = Post.objects.all()[:4]
politics_posts = Post.objects.filter(category='news').exclude(pk__in=top_posts)
context={"top_posts":top_posts, "politics_posts":politics_posts}
return render(request, 'posts/homepage.html', context)
任何帮助都将受到高度赞赏。谢谢.
1条答案
按热度按时间vhmi4jdf1#
你将不得不使用
values_list
将你的代码修改成这样,以只获得列表中的pk。否则,您将尝试比较Post对象列表和exclude
代码也许你需要做
category=politics
。在问题中,您输入了category=news