我有我的評論,用戶可以在其中查看博客帖子,並讓這些評論顯示在post_detail.html
模板中。我想顯示每位用戶的評論總數,旁邊的評論(任何文章)。Django - 在post_detail模板上顯示每個用戶的評論數
例如,我希望對每個用戶說user 1: 4 comments
等等。如果user 1
已在4個不同的帖子上留下4條評論,則所有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
,該方法可行,但它不是動態的。我試圖找回留下評論的用戶。
請參閱以下獲取外鍵[鏈接]計數(https://stackoverflow.com/questions/46027863/getting-model-filters-to-show-count-of-active-values/46028022#46028022) – deaspo
我看過它,我不明白如何將這個應用到我的情況。我仍然在初學者階段學習django&python,請給我更多的信息讓我繼續下去? – dmandres