GraphQL with Aggregates

时间:2017-09-01 14:04:39

标签: django python-2.7 graphene-python

我有一个名为Product的Django模型,其中包含字段name, spec, sub_group和一个名为class的自我FK

我需要使用GraphQL来查询多个聚合 -

  1. Product.objects.values('sub_group').annotate(group_count=Count('sub_group'))

  2. Product.objects.select_related('class').values('class__name', 'class__spec').annotate(class_count=Count('class'))

  3. 我正在尝试使用模式而不是去任何地方

    from django.db.models import Count
    from graphene import Schema, ObjectType, String, Int, List
    
    from products.models import Product
    class ProductNode(ObjectType):
        class__name = String()
        class__spec = String()
        class_count = Int()
        group_count = Int()
    
    
    class Query(ObjectType):
        all_classes = List(ProductNode)
        all_groups = List(ProductNode)
    
        def resolve_all_classes(self, args, context, info):
            return Product.objects.values('sub_group').annotate(group_count=Count('sub_group'))
    
        def resolve_all_groups(self, args, context, info):
            return Product.objects.select_related('class').values(
                'class__name', 'classification__spec').exclude(
                class__name='').annotate(
                class_count=Count('class'))
    
    
    schema = Schema(query=Query)
    

    需要帮助来解决这个问题,因为我没有看到使用聚合查询的任何示例。

0 个答案:

没有答案