用石墨烯 django 数点赞
Posted
技术标签:
【中文标题】用石墨烯 django 数点赞【英文标题】:Count likes with graphene django 【发布时间】:2021-09-25 13:16:33 【问题描述】:我正在尝试用石墨烯 django 制作一个字段,以便能够计算每个帖子的点赞总数,我该怎么做,我尝试做的是以下
class PostType(DjangoObjectType):
class Meta:
model = Post
likes = graphene.List()
def resolve_count_like(self, info, id):
post_id = Post.objects.filter(id=id)
n = Likes.objects.filter(post_id=post_id)
return len(n)
【问题讨论】:
【参考方案1】:可以使用 root 访问当前对象的属性,因此您无需手动传递您的帖子 ID。试试这样的:
class PostType(DjangoObjectType):
class Meta:
model = Post
likes = graphene.List()
count_like = graphene.Int()
def resolve_count_like(self, root, info, **kwargs):
return Likes.objects.filter(post_id=root.id).count()
您可以通过在查询集上链接 count()
来跳过通过 len
检查长度。这会更快,因为查询执行SELECT COUNT(*)
。
【讨论】:
以上是关于用石墨烯 django 数点赞的主要内容,如果未能解决你的问题,请参考以下文章