我知道在模板中您可以使用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
答案 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()