post 中使用的标签被用户评论的次数
Number of times Tags used in post which were commented by user
我正在构建一个简单的博客应用程序,我正在尝试实现一项功能。
其中,如果用户对 post 发表评论 post tags
- tag1, tag2
。
我将检索 Tags of which user commented on post
我正在尝试计算 Number of times a user commented on a post with same tag
就像我想展示的那样:-
Tag Name
Number of times used
tag1
16 Times
tag2
10 Times
tag3
8 Times
此 table 显示:- 用户评论 post 时使用了之前 post 中使用的标签。
例如:-
一个名为“user_1”的新用户评论了 Post,标签为 tag5
、tag6
、tag8
,然后是 A query
将显示 user_1
已对 post 标签 1 times in tag5
、1 time in tag6
和 1 time in tag8
发表评论。
剩下的我稍后再做。
models.py
class BlogPost(models.Model):
user = models.ForeinKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=30)
tags = TaggableManager()
class Comment(models.Model):
comment_by = models.ForeignKey(User, on_delete=models.CASCADE)
on_post = models.ForeignKey(BlogPost, on_delete=models.CASCADE)
views.py
def examplePage(request):
query = Tag.objects.filter(blogpost__user=request.user)
context = {'query': query}
return render(request, 'examplePage.html', context)
此视图显示 used in post
被 request.user
评论的标签,如 :-
tag1
tag2
tag2
但我不知道,我该如何注释才能显示 post 上由 request.user
评论的已用标签的数量,如上 table.
任何帮助将不胜感激。谢谢。
注意 :- 我正在为 Tags
使用 Django-Taggit(TaggableManager()
在博客Post 模型中)
使用 blogpost__user
会导致标签被(我假设)BlogPost
的作者而不是评论者过滤,所以我认为你会想要使用 blogpost__comment__comment_by
?
有了它,您可以像这样注释标签的数量:
Tag.objects.filter(
blogpost__comment__comment_by=request.user
).values(
'name'
).annotate(
times_used=Count('name')
)
我正在构建一个简单的博客应用程序,我正在尝试实现一项功能。
其中,如果用户对 post 发表评论 post tags
- tag1, tag2
。
我将检索 Tags of which user commented on post
我正在尝试计算 Number of times a user commented on a post with same tag
就像我想展示的那样:-
Tag Name | Number of times used |
---|---|
tag1 | 16 Times |
tag2 | 10 Times |
tag3 | 8 Times |
此 table 显示:- 用户评论 post 时使用了之前 post 中使用的标签。
例如:-
一个名为“user_1”的新用户评论了 Post,标签为 tag5
、tag6
、tag8
,然后是 A query
将显示 user_1
已对 post 标签 1 times in tag5
、1 time in tag6
和 1 time in tag8
发表评论。
剩下的我稍后再做。
models.py
class BlogPost(models.Model):
user = models.ForeinKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=30)
tags = TaggableManager()
class Comment(models.Model):
comment_by = models.ForeignKey(User, on_delete=models.CASCADE)
on_post = models.ForeignKey(BlogPost, on_delete=models.CASCADE)
views.py
def examplePage(request):
query = Tag.objects.filter(blogpost__user=request.user)
context = {'query': query}
return render(request, 'examplePage.html', context)
此视图显示 used in post
被 request.user
评论的标签,如 :-
tag1
tag2
tag2
但我不知道,我该如何注释才能显示 post 上由 request.user
评论的已用标签的数量,如上 table.
任何帮助将不胜感激。谢谢。
注意 :- 我正在为 Tags
使用 Django-Taggit(TaggableManager()
在博客Post 模型中)
使用 blogpost__user
会导致标签被(我假设)BlogPost
的作者而不是评论者过滤,所以我认为你会想要使用 blogpost__comment__comment_by
?
有了它,您可以像这样注释标签的数量:
Tag.objects.filter(
blogpost__comment__comment_by=request.user
).values(
'name'
).annotate(
times_used=Count('name')
)