2017-10-19 87 views
0

我使用python 3.5如何使用石墨烯的Django別名

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,我應該使用別名,但我不知道如何。 感謝您的幫助。

+0

你想在同一個查詢中獲得一個按類別和另一個由pk獲得或獲得兩個使用過濾器嗎? –

+0

@MauricioCortazar第一個:我想在同一個查詢中按類別獲取一個,在pk中獲取另一個。 –

+0

看到我的答案並告訴我 –

回答

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 
     }