From 7cbd5e2139c8896ad4c626160027457dd98eaf61 Mon Sep 17 00:00:00 2001 From: Christian Reiter Date: Mon, 26 Dec 2016 17:55:48 +0100 Subject: [PATCH] Fix for custom resolve support for DjangoFilterConnectionField (issue #30) --- graphene_django/filter/fields.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/graphene_django/filter/fields.py b/graphene_django/filter/fields.py index defcfc1..0d08ab8 100644 --- a/graphene_django/filter/fields.py +++ b/graphene_django/filter/fields.py @@ -24,9 +24,15 @@ class DjangoFilterConnectionField(DjangoConnectionField): def connection_resolver(resolver, connection, default_manager, filterset_class, filtering_args, root, args, context, info): filter_kwargs = {k: v for k, v in args.items() if k in filtering_args} - qs = default_manager.get_queryset() - qs = filterset_class(data=filter_kwargs, queryset=qs).qs - return DjangoConnectionField.connection_resolver(resolver, connection, qs, root, args, context, info) + + def new_resolver(root, args, context, info): + qs = resolver(root, args, context, info) + if qs is None: + qs = default_manager.get_queryset() + qs = filterset_class(data=filter_kwargs, queryset=qs).qs + return qs + + return DjangoConnectionField.connection_resolver(new_resolver, connection, None, root, args, context, info) def get_resolver(self, parent_resolver): return partial(self.connection_resolver, parent_resolver, self.type, self.get_manager(),