diff --git a/graphene_django_optimizer/query.py b/graphene_django_optimizer/query.py index 070089cb8c8a5aca2e8be8e8feaf1b6a1fa02949..1a33ca8fa3e2d632af4ec5a28d267f89dadc5c63 100644 --- a/graphene_django_optimizer/query.py +++ b/graphene_django_optimizer/query.py @@ -167,6 +167,7 @@ class QueryOptimizer(object): if field_model == model: self._optimize_field( store, + name, model, selection, selection_field_def, @@ -174,9 +175,9 @@ class QueryOptimizer(object): ) return store - def _optimize_field(self, store, model, selection, field_def, parent_type): + def _optimize_field(self, store, name, model, selection, field_def, parent_type): optimized_by_name = self._optimize_field_by_name( - store, model, selection, field_def + store, name, model, selection, field_def ) optimized_by_hints = self._optimize_field_by_hints( store, selection, field_def, parent_type @@ -185,8 +186,9 @@ class QueryOptimizer(object): if not optimized: store.abort_only_optimization() - def _optimize_field_by_name(self, store, model, selection, field_def): - name = self._get_name_from_resolver(field_def.resolve) + def _optimize_field_by_name(self, store, name, model, selection, field_def): + resolver_name = self._get_name_from_resolver(field_def.resolve) + name = resolver_name or name if not name: return False model_field = self._get_model_field_from_name(model, name)