如何在 graphene-django 中使用别名
how to use aliases in graphene-django
我正在使用 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 我应该使用别名,但我不知道如何使用。
感谢您的帮助。
就像例子一样简单:
{
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
}
我正在使用 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 我应该使用别名,但我不知道如何使用。
感谢您的帮助。
就像例子一样简单:
{
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
}