如何获取每个帖子的评论数量?
在每篇文章中我都有评论,我想在所有帖子的父列表中显示这些评论的数量。
IE中。
li:
title: post 1
comments: 12
li:
title: post 2
comments: 32
等。
我正在使用 djangocms-comments == 0.2.2和 djangocms-blog == 0.8.1
答案 0 :(得分:1)
从djangocms-comments文档中,使用djangocms-comments提供的股票代码看起来并不可行。代码类似于https://github.com/Nekmo/djangocms-comments/blob/master/djangocms_comments/cms_plugins.py#L23的模板标签应该可以。
在您的peoject中安装的任何应用程序中创建一个templatetags
包,然后创建一个模块文件(例如:comments_tags.py
)。在此文件中添加:
from django import template
register = template.Library()
@register.simple_tag(request_context=True)
def count_comments_for_post(context, post):
obj = get_object_from_context(context)
request = context['request']
ct = ContentType.objects.get_for_model(obj)
return self.get_comments(request, obj, ct).count()
在博客模板中加载comments_tags
以及{% count_comments_for_post post %}
之类的内容,您需要帖子的评论编号。
请注意,代码未经测试,因为我没有使用djangocms-comments,并且目前无法验证它