django-safedelete: QuerySet first() method gives Cannot filter a query once a slice has been taken.
Hey guys!
It seems that this code change gave me an issue, as following:
User.objects.filter(email="paul@email.nl").first()
Gives me:
File "/Users/pauloostenrijk/webprojects/app/app/users/import_export/resources.py", line 57, in before_import
user = User.objects.all().filter(email=row['email']).first()
File "/Users/pauloostenrijk/.virtualenvs/app/lib/python2.7/site-packages/django/db/models/query.py", line 550, in first
objects = list((self if self.ordered else self.order_by('pk'))[:1])
File "/Users/pauloostenrijk/.virtualenvs/app/lib/python2.7/site-packages/django/db/models/query.py", line 258, in __iter__
self._fetch_all()
File "/Users/pauloostenrijk/.virtualenvs/app/lib/python2.7/site-packages/safedelete/queryset.py", line 121, in decorator
self._filter_visibility()
File "/Users/pauloostenrijk/.virtualenvs/app/lib/python2.7/site-packages/safedelete/queryset.py", line 98, in _filter_visibility
"Cannot filter a query once a slice has been taken."
AssertionError: Cannot filter a query once a slice has been taken.
Here are some implementation details:
from safedelete.managers import SafeDeleteManager
class UserManager(BaseUserManager, SafeDeleteManager):
@python_2_unicode_compatible
class User(SafeDeleteModel, AbstractBaseUser, TimeStampedUUIDModel, PermissionsMixin):
objects = UserManager()
Version: 0.4.1
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 6
- Comments: 20 (14 by maintainers)
0.4.2 has been released with the fix.
Thanks for the report, I fixed it in master but I don’t have the time to do a release right now. It will be for next week now.
@ewen we are aware of the issue and it’ll get fixed in #77 as well.