【问题标题】:how to use aliases in graphene-django如何在graphene-django中使用别名
【发布时间】:2018-03-31 05:24:16
【问题描述】:

我正在使用带有

的 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")。我读到here 我应该使用别名,但我不知道如何使用。 感谢您的帮助。

【问题讨论】:

  • 您是想在同一个查询中按类别获取一个,然后按 pk 获取另一个,还是使用过滤器同时获取?
  • @MauricioCortazar 第一个:我想在同一个查询中按类别和 pk 获得另一个。
  • 看我的回答并告诉我

标签: python django graphql graphene-python


【解决方案1】:

就跟例子一样简单:

{
  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
      }

【讨论】:

    猜你喜欢
    • 2021-02-07
    • 2019-09-22
    • 2017-11-11
    • 2018-10-29
    • 2021-11-09
    • 2018-06-09
    • 2017-03-15
    • 2021-01-21
    • 1970-01-01
    相关资源
    最近更新 更多