diff --git a/dev-env-requirements.txt b/dev-env-requirements.txt
index eb1b2ac6036dba2cfb127ef3856c521940dcbdfc..2ad8363f7676a57ab95cd713f099dc47624667d2 100644
--- a/dev-env-requirements.txt
+++ b/dev-env-requirements.txt
@@ -1,6 +1,6 @@
 -r requirements.txt
-graphene==2.1.3
-graphene-django==2.2.0
+graphene==2.1.8
+graphene-django==2.7.1
 pytest==4.6.3
 pytest-django==3.5.0
 pytest-cov==2.7.1
diff --git a/graphene_django_optimizer/query.py b/graphene_django_optimizer/query.py
index f671cfb13cb0e9874f59b7558a841f302c28e226..ad19028f3d3d518b913ea1e72fab81ca1f9d67ae 100644
--- a/graphene_django_optimizer/query.py
+++ b/graphene_django_optimizer/query.py
@@ -271,7 +271,15 @@ class QueryOptimizer(object):
         elif isinstance(resolver, functools.partial):
             resolver_fn = resolver
             if resolver_fn.func != default_resolver:
-                resolver_fn = resolver_fn.args[0]
+                # Some resolvers have the partial function as the second
+                # argument.
+                for arg in resolver_fn.args:
+                    if isinstance(arg, (str, functools.partial)):
+                        break
+                else:
+                    # No suitable instances found, default to first arg
+                    arg = resolver_fn.args[0]
+                resolver_fn = arg
             if isinstance(resolver_fn, functools.partial) and resolver_fn.func == default_resolver:
                 return resolver_fn.args[0]
             return resolver_fn