如何通过foreignkey获取相关模型的计数

2024-09-22 14:21:34 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有两个模型发布和评论。我想通过foriegnkey获得与post相关的评论数。我试着按评论的顺序列出这篇文章。但我不知道如何计算每篇文章的评论数量

class Comment(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE)

class Post(models.Model):
    title = models.CharField(max_length=100)

和在views.py中

class PostListView(ListView):
    model = Post
    template_name = 'community/home.html'  # <app>/<model>_<viewtype>.html
    context_object_name = 'posts'
    paginate_by = 4
    #ordering = ['-#comment'] #how do I do this one?hmm

Tags: name模型model顺序modelshtml文章评论
1条回答
网友
1楼 · 发布于 2024-09-22 14:21:34

我想你需要这样的东西:

post_pks = Post.objects.all().values('pk', flat=True)

post_comments = {}
for pk in post_pks:
    sorted_comments = list(Comment.objects.filter(post_id=pk).ordered_by('-pk'))
    post_comments[pk] = sorted_comments

首先,我获取post PK并循环它们以获取与每个PK相关的所有注释。这些注释根据它们的pk进行排序,我创建了一个字典,其中包含post pks键和values注释实例

相关问题 更多 >