Keep original queryset on DjangoFilterConnectionField

The PR #796 broke DjangoFilterConnectionField making it always get the
raw queryset from the model to apply the filters in it.

This makes sure that the DjangoObjectType's .get_queryset is called,
keeping any filtering it might have made.
This commit is contained in:
Thiago Bellini Ribeiro 2019-11-28 19:55:09 -03:00
parent e82a2d75c6
commit 3bfab99faf

View File

@ -55,10 +55,11 @@ class DjangoFilterConnectionField(DjangoConnectionField):
def resolve_queryset(
cls, connection, iterable, info, args, filtering_args, filterset_class
):
qs = super(DjangoFilterConnectionField, cls).resolve_queryset(
connection, iterable, info, args
)
filter_kwargs = {k: v for k, v in args.items() if k in filtering_args}
return filterset_class(
data=filter_kwargs, queryset=iterable, request=info.context
).qs
return filterset_class(data=filter_kwargs, queryset=qs, request=info.context).qs
def get_queryset_resolver(self):
return partial(