我有两个模型,如下所述:
class Post(models.Model):
title = models.CharField(max_length=60)
details = models.TextField()
class Comment(models.Model):
blog_post = models.ForeignKey(Post)
name = models.CharField(max_length=40)
comment = models.TextField()
我想写一个视图,显示来自帖子的所有条目和每个帖子的相应评论数量。
我知道我可以通过这样做来计算评论的数量:Comment.objects.filter(blog_post__title__icontains='xxx').count()
我只想输出一个HTML页面,其中显示所有帖子,并且每个帖子都应该有相应的评论计数(只有计数,而不是实际的评论条目/数据)。我该怎么做呢?如何将帖子列表和每个帖子的相应评论计数传递给模板?
发布于 2011-01-22 00:37:38
您可以使用aggregation。当你得到你的帖子列表时,你告诉Django你想要同时计算相关评论:
from django.db.models import Count
posts = Post.objects.all().annotate(comment_count=Count('comment'))
现在,posts
查询集中的每个帖子都有一个comment_count
属性,即相关评论的数量。
https://stackoverflow.com/questions/4761144
复制相似问题