【问题标题】:Count likes with graphene django用石墨烯 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)

【问题讨论】:

    标签: python django graphql graphene-python graphene-django


    【解决方案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(*)

    【讨论】:

      猜你喜欢
      • 2018-01-11
      • 2020-09-01
      • 2019-12-20
      • 2020-09-05
      • 2017-08-20
      • 2020-09-03
      • 2019-01-19
      • 2018-01-29
      • 2021-07-08
      相关资源
      最近更新 更多