以列表为输入的石墨烯突变
Posted
技术标签:
【中文标题】以列表为输入的石墨烯突变【英文标题】: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].
如何在接受对象列表的石墨烯中进行突变?
【问题讨论】:
【参考方案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。以上是关于以列表为输入的石墨烯突变的主要内容,如果未能解决你的问题,请参考以下文章