0

我正在使用 python 3.5

Django==1.11.6
graphene==2.0.dev20170802065539
graphene-django==2.0.dev2017083101
graphql-core==2.0.dev20171009101843
graphql-relay==0.4.5

我有一个模式可以像这样获取单个对象:

class Query(graphene.AbstractType):
   story = graphene.Field(storyType, category=graphene.String(), id=graphene.Int())
   def resolve_story(self, info, **kwargs):
        category = kwargs.get('category')
        id = kwargs.get('id')
        if category is not None:
            return models.story.objects.get(category=models.category.objects.get(name=category))
        if id is not None:
            return models.story.objects.get(pk=id)
        return None

我的问题是我不能在一个查询中story(category:"category")同时使用两者。我在这里(id:"id")读到我应该使用别名,但我不知道如何。谢谢你的帮助。

4

1 回答 1

0

就像示例一样简单:

{
  storyId: story(id: 1) {
    name
  }
  storyCategory: story(category: "category_name") {
    name
  }
}

filter但如果这就是你的意思,你可以使用:

        if category and id is not None:
            return models.story.objects.filter(id=id, category=models.category.objects.get(name=category))

在查询中类似于:

story(id: 1, name: "category_name") {
        name
      }
于 2017-10-19T17:40:01.023 回答