微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决无法在 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 举报,一经查实,本站将立刻删除。