使用Django的注释框架计算`models.py`中每个对象的注释

时间:2012-03-30 09:07:00

标签: python django django-models

我知道在模板中您可以使用get_comment_count轻松统计评论,但是如何在models.py中获得与课程内的方法相同的计数?

例如

class Blog( models.Model ) :
    def comment_count( self ) :
        return self.comment_set.count() # This line won't work.

    title = ....
    ....

我想拥有comment_count,以便我可以统一管理页面中的评论。

编辑:为了您的方便,这里是models.py的{​​{1}}

django.contrib.comments

1 个答案:

答案 0 :(得分:7)

评论通过generic relations与您的模型相关,因此您可以像查询任何通用关系一样查找对象的评论:

from django.conrtib.comments.models import Comment
from django.contrib.contenttypes.models import ContentType
class Blog( models.Model ) :
    def comment_count(self) :
        ct = ContentType.objects.get_for_model(Blog)
        obj_pk = self.id
        return Comment.objects.filter(content_type=ct,object_pk=obj_pk).count()