如何在graphene-django中使用别名
Posted
技术标签:
【中文标题】如何在graphene-django中使用别名【英文标题】:how to use aliases in graphene-django 【发布时间】:2018-03-31 05:24:16 【问题描述】:我正在使用带有
的 python 3.5Django==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 获得另一个。 看我的回答并告诉我 【参考方案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
【讨论】:
以上是关于如何在graphene-django中使用别名的主要内容,如果未能解决你的问题,请参考以下文章
如何在 react 中使用 graphene-django 和 axios 将图像上传到我的服务器?
如何在 graphene-django GraphQLTestCase 中使用 django-grahql-jwt 进行身份验证?
如何使用 graphene-django 定义突变的自定义输出类型?