在Python中,为什么GraphQL枚举值显示为null?

2024-04-29 05:08:56 发布

您现在位置:Python中文网/ 问答频道 /正文

Django: 2.0.6
graphene: 2.1.2
graphene-django: 2.0.0

我有以下代码:

^{pr2}$

最初SWLangChoice是一个普通枚举对象。所以我把它转换成SWLangChoiceEnum并创建了LangChoiceType类型。在GraphiQL中,我可以看到这个枚举的键(尽管它们标记为值)。 但当我请求此枚举时,我看到:

{
  "data": {
    "langs": {
      "lang": null
    }
  }
}

我做错什么了?在


Tags: 对象django代码标记类型langdatagraphene
1条回答
网友
1楼 · 发布于 2024-04-29 05:08:56

我也不确定您试图返回enum的哪一部分,但是这里对代码进行了一些最小的修改,以实现这两个目标

class SWLangChoice(enum.Enum):
    PHP = "PHP"
    PY = "Python"

# SWLangChoiceEnum = graphene.Enum.from_enum(SWLangChoice)

class LangChoiceType(graphene.ObjectType):
    key = graphene.String()
    value = graphene.String()

class Query(graphene.AbstractType):

    langs = graphene.List(LangChoiceType) # Changed to return a list
    def resolve_langs(self, info):
        # Creates a new LangChoiceType object by iterating terates over enum
        return [LangChoiceType(lang.name, lang.value) for lang in SWLangChoice] 

关于石墨烯.枚举在他们的页面上没有给出一个用例,所以我不确定它是用来做什么的。因此,我的回答中没有使用它。在

用上面的代码,下面的查询和结果是 在

^{pr2}$
{
  "data": {
    "langs": [
      {
        "key": "PHP",
        "value": "PHP"
      },
      {
        "key": "PY",
        "value": "Python"
      }
    ]
  }
}

相关问题 更多 >