Description
Hi, I am still just learning. Looking for advice on an issue.
The simple question is, what is the best way to instantiate an ObjectType?
Here is a longer drawn out explanation for a simple question. I currently have something like below that returns a UserObjectType. Everything is great and user field resolves correctly. Returns the UserObjectType that is initialized by 'some_init_dictionary' which graphql takes care of on backend somewhere.
class NotesType(ObjectType):
user = graphene.Field(UserObjectType)
def resolve_user(self, args, context, info):
return some_init_dictionary
Looking at examples, I decided I want to get fancy with Interfaces. Basically, I am trying to copy the example schema for StarWars and define the user field as a UserInterface. Then return an instance of UserObjectType.
class NotesType(ObjectType):
user = graphene.Field(UserInterface)
def resolve_user(self, args, context, info):
return UserObjectType(**some_init_dictionary)
I simply replaced UserObjectType with UserInterface. That all works fine, too.
However, if some_init_dictionary has an extra field, then I get the "is an invalid keyword argument" error. In the original with UserObjectType, the extra field is ignored and everything merrily works fine.
Thus, am I missing something here? I would rather not have to do something like:
return UserObjectType(arg1='arg1', arg2='arg2', ... etc.)
and explicity call the constructor with each argument and field. I just want to duplicate how graphql handles the instantiation of UserObjectType as in the original version.
I hope that made sense. This should be a fairly simple answer/question. Thank you!
Jae