无法在 GraphQL 中返回 Enum 得到 Unhashable 类型:'EnumMeta'

问题描述

我想做什么

我试图返回 Enum 值及其名称,因此如果我运行查询

{
  getFruits {
    fruits
  }
}

我想要输出

{
  data: {
     fruits: [
         {APPLE: 1},{ORANGE: 2},{MANGO: 3}
     ]    
  }
}

但我收到一个错误

{
  "errors": [
    {
      "message": "unhashable type: 'EnumMeta'","locations": [
        {
          "line": 20,"column": 3
        }
      ],"path": [
        "getFruits"
      ]
    }
  ],"data": {
    "getFruits": null
  }
}

我确实查看了 docs,但没有帮助。

返回 Enum 的目的是什么?

显示可用作后续查询参数的有效选项。

我的代码

类型:

class EnumType(graphene.Enum):
    APPLE = 1
    ORANGE = 2
    MANGO = 3


class FruitType(graphene.ObjectType):
    fruits = graphene.List(EnumType)

解析器:

class MyQuery(graphene.ObjectType):
    get_fruits = graphene.Field(FruitType)

    def resolve_get_fruits(self,info):
        fruits = [
            {EnumType.APPLE: 1},{EnumType.ORANGE: 2},{EnumType.MANGO: 3}
        ]
        return FruitType(
            fruits=fruits
        )

我不知道这样做是否正确,因为我对 GraphQL 总体上是新手。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)