Closed
Description
given the following code:
class ManageQuery(AbstractType):
group_requests = DjangoFilterConnectionField(RequestNode, filterset_class=RequestManageFilter)
and the filterset class:
class RequestManageFilter(FilterSet):
# Do case-insensitive lookups on 'name'
@property
def qs(self):
user = getattr(self.request, 'user', None)
print('User: ', user)
parent = super(RequestManageFilter, self).qs
return parent # .filter(group=self.request.user.main_author)
class Meta:
model = Request
exclude = set()
the instance property self.request is always None, because when it's instantiated, graphene-django does not pass the context as request, shown here in fields.py's connection_resolver
@classmethod
def connection_resolver(cls, resolver, connection, default_manager, max_limit,
enforce_first_or_last, filterset_class, filtering_args,
root, args, context, info):
filter_kwargs = {k: v for k, v in args.items() if k in filtering_args}
qs = filterset_class(
data=filter_kwargs,
queryset=default_manager.get_queryset(),
).qs
passing request=context would make it work:
qs = filterset_class(
data=filter_kwargs,
queryset=default_manager.get_queryset(),
request=context,
).qs
Metadata
Metadata
Assignees
Labels
No labels