django-softdelete icon indicating copy to clipboard operation
django-softdelete copied to clipboard

DRF ModelViewSet + pagination + SafeDeleteModel at list action

Open smartfin opened this issue 7 years ago • 0 comments

I use DRF and ModelViewSet. After enabling pagination I got exception:

Cannot filter a query once a slice has been taken.

Traceback:  

File "/home/vagrant/env/portal/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
  39.             response = get_response(request)

File "/home/vagrant/env/portal/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/home/vagrant/env/portal/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/home/vagrant/env/portal/lib/python3.5/site-packages/django/views/decorators/csrf.py" in wrapped_view
  58.         return view_func(*args, **kwargs)

File "/home/vagrant/env/portal/lib/python3.5/site-packages/rest_framework/viewsets.py" in view
  83.             return self.dispatch(request, *args, **kwargs)

File "/home/vagrant/env/portal/lib/python3.5/site-packages/rest_framework/views.py" in dispatch
  483.             response = self.handle_exception(exc)

File "/home/vagrant/env/portal/lib/python3.5/site-packages/rest_framework/views.py" in handle_exception
  443.             self.raise_uncaught_exception(exc)

File "/home/vagrant/env/portal/lib/python3.5/site-packages/rest_framework/views.py" in dispatch
  480.             response = handler(request, *args, **kwargs)

File "/home/vagrant/env/portal/lib/python3.5/site-packages/rest_framework/mixins.py" in list
  42.         page = self.paginate_queryset(queryset)

File "/home/vagrant/env/portal/lib/python3.5/site-packages/rest_framework/generics.py" in paginate_queryset
  172.         return self.paginator.paginate_queryset(queryset, self.request, view=self)

File "/home/vagrant/env/portal/lib/python3.5/site-packages/rest_framework/pagination.py" in paginate_queryset
  347.         return list(queryset[self.offset:self.offset + self.limit])

File "/home/vagrant/env/portal/lib/python3.5/site-packages/django/db/models/query.py" in __iter__
  256.         self._fetch_all()

File "/home/vagrant/env/portal/lib/python3.5/site-packages/safedelete/queryset.py" in decorator
  121.                 self._filter_visibility()

File "/home/vagrant/env/portal/lib/python3.5/site-packages/safedelete/queryset.py" in _filter_visibility
  98.                 "Cannot filter a query once a slice has been taken."

Exception Type: AssertionError at /projects/7/tasks/groups/
Exception Value: Cannot filter a query once a slice has been taken.

smartfin avatar May 05 '17 18:05 smartfin