added post_resolver in django connection field

This commit is contained in:
Mardanov Timur Rustemovich 2019-02-04 13:33:51 +03:00
parent c2e175a94c
commit 1685b36e80

View File

@ -17,6 +17,7 @@ class DjangoFilterConnectionField(DjangoConnectionField):
order_by=None,
extra_filter_meta=None,
filterset_class=None,
post_resolver=None,
*args,
**kwargs
):
@ -25,6 +26,7 @@ class DjangoFilterConnectionField(DjangoConnectionField):
self._filterset_class = None
self._extra_filter_meta = extra_filter_meta
self._base_args = None
self._post_resolver = post_resolver
super(DjangoFilterConnectionField, self).__init__(type, *args, **kwargs)
@property
@ -91,6 +93,7 @@ class DjangoFilterConnectionField(DjangoConnectionField):
self.enforce_first_or_last,
self.filterset_class,
self.filtering_args,
self._post_resolver,
)
@classmethod
@ -102,6 +105,7 @@ class DjangoFilterConnectionField(DjangoConnectionField):
enforce_first_or_last,
filterset_class,
filtering_args,
post_resolver,
root,
info,
**args):
@ -141,6 +145,9 @@ class DjangoFilterConnectionField(DjangoConnectionField):
for item in rels.items():
qs=qs.has(**{item[0]: item[1]})
if post_resolver:
qs = post_resolver(qs, info, **args)
if order:
qs=qs.order_by(order)