I'm new with GraphQL schemas and I would like to do a mutation using the gql client. The query below works like a charme in the graphql web interface after replacing the 5 variables with the corresponding strings and integers.
But when I put a $ before every variables in the query, as mentionned in the documentation, it throws an error saying Variable '$w' is not defined by operation 'createMutation'.
What am'I missing ?
transport = AIOHTTPTransport(url="http://x.x.x.x:8000/graphql")
client = Client(transport=transport, fetch_schema_from_transport=True)
query = gql(
    """
        mutation createMutation {
          createTarget(targetData: {weight: $w, dt: $dt, 
            exchangeId: $exchangeId, 
            strategyId: $strategyId,
            marketId:$marketId
          }) {
            target {
              dt,
              weight,
              market,
              exchange,
              strategy
            }
          }
        }
"""
)
params = {"w": self.weight,
          "dt": self.dt,
          "exchangeId": self.exchange.pk,
          "strategyId": self.strategy.pk,
          "marketId": self.market.pk
          }
result = client.execute(query, variable_values=params)
When I remove the $ it says Float cannot represent non numeric value: w.
And this is how the graphene code looks like at the server side :
class TargetInput(graphene.InputObjectType):
    weight = graphene.Float()
    dt = graphene.DateTime()
    strategy_id = graphene.Int()
    exchange_id = graphene.Int()
    market_id = graphene.Int()
class CreateTarget(graphene.Mutation):
    class Arguments:
        target_data = TargetInput(required=True)
    target = graphene.Field(CustomObject)
    @staticmethod
    def mutate(root, info, target_data):
        target = Target.objects.create(**target_data)
        return CreateTarget(target=target)
class Mutation(graphene.ObjectType):
    create_target = CreateTarget.Field()
schema = graphene.Schema(query=Query, mutation=Mutation)
There is also another question related to gql variables but it doesn't solve my problem.