用石墨烯Django计算喜欢

2024-09-24 00:28:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用graphene 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)

Tags: djangoidmodelobjects文章filterpostmeta
1条回答
网友
1楼 · 发布于 2024-09-24 00:28:01

可以使用根目录访问当前对象的属性,因此您无需手动传递帖子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(*)

相关问题 更多 >