【发布时间】:2017-09-04 21:27:55
【问题描述】:
我设置了我的 cmets,用户可以在其中查看博客文章并将这些评论显示在 post_detail.html 模板中。我想在他们的 cmets 旁边(在任何帖子中)显示每个用户的 cmets 总数。
例如,我希望它为每个用户说user 1: 4 comments,依此类推。如果user 1 在 4 个不同的帖子上留下了 4 个 cmets,则所有 4 个帖子都应显示user 1: 4 comments。
models.py
class UserProfile(models.Model):
user = models.OneToOneField(User, related_name='profile')
...
def user_rating_count(self):
user_ratings = Comment.objects.filter(user=2).count()
return user_ratings
...
class Comment(models.Model):
post = models.ForeignKey(Post, related_name="comments")
user = models.ForeignKey(User, related_name="usernamee")
...
review_count = models.IntegerField(default=0)
views.py
@login_required
def add_comment(request, slug):
post = get_object_or_404(Post, slug=slug)
if request.method == 'POST':
form = CommentForm(request.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.post = post # Makes the post linked to the comment
comment.user = request.user # Makes the user linked to the comment
comment.email = request.user.email
comment.picture = request.user.profile.profile_image_url()
comment.review_count = request.user.profile.user_rating_count()
comment.save()
return redirect('blog:post_detail', slug=post.slug)
else:
form = CommentForm()
template = "blog/post/add_comment.html"
context = {'form': form}
return render(request, template, context)
post_detail.html
...
{% for comment in post.comments.all %}
{{ comment.review_count }}
{% endfor %}
...
我一直在尝试通过我的模型的user_rating_count 方法来完成此操作,但我只能手动选择user=1 或user=2,这可行,但它不是动态的。我正在尝试检索留下评论的用户。
【问题讨论】:
-
查看以下内容以获取外键Link的计数
-
我看过了,我不明白如何将其应用于我的情况。我仍处于学习 django 和 python 的初级阶段,您能否提供更多信息让我继续学习?
标签: python django django-models django-templates