Graphql 如何删除Graphene Django变异查询(中继)中的嵌套输入对象?

Graphql 如何删除Graphene Django变异查询(中继)中的嵌套输入对象?,graphql,graphene-python,mutation,graphene-django,Graphql,Graphene Python,Mutation,Graphene Django,我想在接力中创造一个突变。我正在使用InputObjectType模式来分离输入并使其可重用。 在这个类中,我使用了Input类,在这里我传递了inputObject类型 一般来说,它可以工作,但客户端的最终查询非常难看。 我需要以这种方式传递参数 query( input : { input : { ...arguments } } ) 老实说,我不喜欢它。我觉得它看起来很丑 所以问题是:是否有可能避免使用大量这些输入对象? 可以使用1input对象,但是嵌套的对象是多余的,我希望避免使用

我想在接力中创造一个突变。我正在使用InputObjectType模式来分离输入并使其可重用。 在这个类中,我使用了Input类,在这里我传递了inputObject类型

一般来说,它可以工作,但客户端的最终查询非常难看。 我需要以这种方式传递参数

query( input : { input : { ...arguments  } } )
老实说,我不喜欢它。我觉得它看起来很丑

所以问题是:是否有可能避免使用大量这些输入对象? 可以使用1input对象,但是嵌套的对象是多余的,我希望避免使用它

谢谢你的帮助

这是一个例子

class FuelTypeInput(graphene.InputObjectType):
    id = graphene.Int()
    label = graphene.String()
class FuelSubtypeInput(graphene.InputObjectType):
    id = graphene.ID()
    label = graphene.String()
    fuel_type = graphene.Field(FuelTypeInput)


class CreateFuelSubType(relay.ClientIDMutation):
  class Input:
    input = FuelSubtypeInput(required=True)

  fuel_subtype = Field(FuelSubTypeNode)
  ok = graphene.Boolean()

  def mutate_and_get_payload(root, info, input):
    label = input.label
    fuel_type = FuelType.objects.get(pk=input.fuel_type.id)

    fuel_subtype = FuelSubType(label=label, fuel_type=fuel_type)
    ok = True
    return CreateFuelSubType(fuel_subtype=fuel_subtype, ok=ok)
变异查询是:

mutation MyMutations {
    createFuelSubtype( input: { input : { label: "Mutation Subtype", fuelType: {
      id: 3
    }} } ) {
        fuelSubtype {
            label
        }
        ok
    }
}
它工作正常,结果如下。但是我想删除嵌套的输入内容

{
  "data": {
    "createFuelSubtype": {
      "fuelSubtype": {
        "label": "Mutation Subtype"
      },
      "ok": true
    }
  }
}