I have the following situation: I have a User, each user has a Inventory. I\'m struggling to declare the user\'s inventory in the Mutation \"CreateUser\". Here is the follow
You can create a custom object type to represent a key value pair, and then have a list of these in your user schema.
class InventoryKeyValueType(graphene.InputObjectType):
name = graphene.String(required=True)
int_value = graphene.Int(required=True)
class AddUser(graphene.Mutation):
user = graphene.Field(lambda: UserType)
ok = graphene.Boolean()
class Arguments:
# User Fields
name = graphene.String()
....
inventory = graphene.List(InventoryKeyValueType)
The syntax is a bit clunky but workable:
mutation { addUser(name:"Shibunika", age:21, inventory:[ {name: "item1", intValue: 45}, {name: "item2", intValue:25}]){ok}
Other Input Types
This approach could easily be extended for other input types beyond integers, for example replacing
int_value = graphene.Int(...
with
str_value = graphene.String(...