django - 我是 graphql 新手,我发现在 django-graphql 中使用两个不同应用程序的模式有困难?

标签 django graphql graphql-python

我是 graphql 新手,我发现在 django-graphql 中使用两个不同应用程序的架构有困难?

app1 英雄 schema.py

import graphene
from graphene_django import DjangoObjectType
from .models import Hero

class HeroType(DjangoObjectType):
    class Meta:
        model = Hero

class Query(graphene.ObjectType):
    heroes = graphene.List(HeroType)    

    def resolve_heroes(self, info, **kwargs):
        return Hero.objects.all()

app2产品架构.py

class ProductType(DjangoObjectType):
  class Meta:
    model = Product

class Query(object):
    allproducts = graphene.List(ProductType, search=graphene.String(),limit=graphene.Int(),skip=graphene.Int(), offset=graphene.Int())

    def resolve_allproducts(self, info, search=None, limit=None, skip=None, offset=None,  **kwargs):
        # Querying a list of products
        qs = Product.objects.all()
        data = []
        if search:
          filter = (
                Q(name__icontains=search)|
                Q(price__icontains=search)
            )
          qs = qs.filter(filter)

        if skip:
            qs = qs[skip:]

        if limit:
          # qs = qs[:limit]
            qs = qs[int(offset):(int(offset) + int(limit))]
        return qs

我的问题:
在主项目 schema.py 中,如何从 app1-hero 和 app2-product 调用 schema?

最佳答案

您可以将两个查询导入为不同的名称。您的主 schema.py 如下所示:

import graphene
from app1.schema import Query as app1_query
from app2.schema import Query as app2_query

class Query(app1_query, app2_query):
    # This class will inherit from multiple Queries
    pass


schema = graphene.Schema(query=Query)

关于django - 我是 graphql 新手,我发现在 django-graphql 中使用两个不同应用程序的模式有困难?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62449591/

相关文章:

python - Django 没有使用 manage.py 测试运行测试

python - Redis PUB/SUB 可以支持多少个 channel ?

python - 将 unicode 保存到数据库

django - URL 命名空间的真实示例

rust - Juniper 和 GraphQLEnum - Unresolved 导入 InputValue

reactjs - Apollo graphQL 中的 useQuery 和 useLazyQuery 有什么区别?

graphql - 如何查看 GraphiQL 中所有可用的子字段?

django - 如何让 Django Graphene ModelForm Mutation 应用