Use always the resolve methods as unbounds. __func__ to the rescue

This commit is contained in:
Syrus Akbary 2016-06-06 02:05:52 -07:00
parent 0db5b1cfbc
commit 3a566241f3

View File

@ -92,18 +92,20 @@ class Field(AbstractField, GraphQLField, OrderedType):
resolver = getattr(interface.graphene_type, 'resolve_{}'.format(self.attname), None) resolver = getattr(interface.graphene_type, 'resolve_{}'.format(self.attname), None)
if resolver: if resolver:
# We remove the bounding to the method # We remove the bounding to the method
resolver = resolver.__func__ resolver = resolver #.__func__
break break
if not resolver: if resolver:
resolver = resolver.__func__
else:
resolver = default_resolver resolver = default_resolver
def resolver_wrapper(root, *args, **kwargs): # def resolver_wrapper(root, *args, **kwargs):
if not isinstance(root, self.parent): # if not isinstance(root, self.parent):
root = self.parent() # root = self.parent()
return resolver(root, *args, **kwargs) # return resolver(root, *args, **kwargs)
return self._resolver or resolver_wrapper return self._resolver or resolver # resolver_wrapper
@resolver.setter @resolver.setter
def resolver(self, resolver): def resolver(self, resolver):