【问题标题】:Graphene mutation with list as input以列表为输入的石墨烯突变
【发布时间】:2020-09-07 20:42:30
【问题描述】:

我有一个这样的石墨烯突变:


class User(ObjectType):
    username = String()

class ImportUsers(Mutation):
    class Arguments:
        users = List(User)
    Output = List(User)

    @staticmethod
    def mutation(root, info, users):
        ...

但是石墨烯给了我以下错误:AssertionError: Mutations.importUsers(users:) argument type must be Input Type but got: [User].

如何在接受对象列表的石墨烯中进行突变?

【问题讨论】:

    标签: graphql graphene-python


    【解决方案1】:

    我正在尝试和你大致相同的事情。

    发现自定义输入类型应该继承自 graphene.InputObjectType 而不是 graphene.ObjectType。

    class User(graphene.InputObjectType):  # <-- Changed to InputObjectType
        username = graphene.String()
    

    因此,让您的User 像这样应该可以解决此问题。

    【讨论】:

      【解决方案2】:

      是的,基本上,你需要有这个:

      class User(graphene.ObjectType):
          username = graphene.String()
      
      class ImportUsers(Mutation):
          class Arguments:
              users = graphene.List(User)
      
          Output = graphene.List(User)
      
          @staticmethod
          def mutation(root, info, users):
              ...
      

      石墨烯有一个列表类型。另外,我不知道是不是只有我,但我认为你需要有石墨烯。(类型),而不仅仅是类型。我现在正在研究与此非常相似的东西,所以希望你能找到或找到你的解决方案,如果你找到了,请告诉我进展如何!希望我能帮助 xD。我对这一切有点陌生,所以你们

      【讨论】:

      • 我得到一个错误 (listOfUsers:) 参数类型必须是输入类型但得到:[用户]。
      • 那是因为 User 类必须是 graphene.InputObjectType 类型,所以它可以用作 Mutation 类中的 Argument。
      猜你喜欢
      • 2021-06-28
      • 2020-09-01
      • 2017-03-18
      • 2018-07-26
      • 2021-12-17
      • 2022-10-25
      • 2022-01-17
      • 2020-05-03
      • 2018-12-06
      相关资源
      最近更新 更多