在djangocms_blog中计算djangocms_comments的注释

时间:2016-06-17 20:08:29

标签: django django-cms

如何获取每个帖子的评论数量?

在每篇文章中我都有评论,我想在所有帖子的父列表中显示这些评论的数量。

IE中。

li: 
  title: post 1
  comments: 12
li: 
  title: post 2
  comments: 32

等。

我正在使用 djangocms-comments == 0.2.2和 djangocms-blog == 0.8.1

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,并且目前无法验证它