From 752cd77652e48e6be168610fd630dbe607d40997 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Mon, 19 Oct 2015 22:28:09 -0700 Subject: [PATCH] Improved field resolving if instance is not wrapped --- graphene/core/fields.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/graphene/core/fields.py b/graphene/core/fields.py index 1f407a8f..2caf2a9f 100644 --- a/graphene/core/fields.py +++ b/graphene/core/fields.py @@ -55,7 +55,12 @@ class Field(object): if resolve_fn: return resolve_fn(instance, args, info) else: - return instance.get_field(self.field_name) + if isinstance(instance, BaseObjectType): + return instance.get_field(self.field_name) + if hasattr(instance, self.field_name): + return getattr(instance, self.field_name) + elif hasattr(instance, self.name): + return getattr(instance, self.name) @memoize def get_resolve_fn(self): @@ -74,6 +79,8 @@ class Field(object): def get_object_type(self, schema): field_type = self.field_type + if inspect.isfunction(field_type): + field_type = field_type(self) _is_class = inspect.isclass(field_type) if isinstance(field_type, Field): return field_type.get_object_type(schema)