@@ -86,9 +86,10 @@ def is_filterable(k):
86
86
return False
87
87
if isinstance (converted , (ConnectionField , Dynamic )):
88
88
return False
89
- if callable (getattr (converted , 'type' , None )) and isinstance (converted .type (),
90
- (FileFieldType , PointFieldType ,
91
- MultiPolygonFieldType , graphene .Union )):
89
+ if callable (getattr (converted , 'type' , None )) \
90
+ and isinstance (
91
+ converted .type (),
92
+ (FileFieldType , PointFieldType , MultiPolygonFieldType , graphene .Union )):
92
93
return False
93
94
return True
94
95
@@ -188,10 +189,12 @@ def default_resolver(self, _root, info, **args):
188
189
connection .list_length = list_length
189
190
return connection
190
191
191
- def chained_resolver (self , resolver , root , info , ** args ):
192
- resolved = resolver (root , info , ** args )
193
- if resolved is not None :
194
- return resolved
192
+ def chained_resolver (self , resolver , is_partial , root , info , ** args ):
193
+ if not bool (args ) or not is_partial :
194
+ # XXX: Filter nested args
195
+ resolved = resolver (root , info , ** args )
196
+ if resolved is not None :
197
+ return resolved
195
198
return self .default_resolver (root , info , ** args )
196
199
197
200
@classmethod
@@ -209,5 +212,5 @@ def connection_resolver(cls, resolver, connection_type, root, info, **args):
209
212
def get_resolver (self , parent_resolver ):
210
213
super_resolver = self .resolver or parent_resolver
211
214
resolver = partial (
212
- self .chained_resolver , super_resolver )
213
- return partial (self .connection_resolver , resolver , self .type )
215
+ self .chained_resolver , super_resolver , isinstance ( super_resolver , partial ) )
216
+ return partial (self .connection_resolver , resolver , self .type )
0 commit comments