[Answered ]-SearchFilter misbehaves when data is a lot

1👍

Because you made an override of the filter_queryset, it will no longer work with the filter_backends to filter the data. You should filter the queryset further, by making a super call:

class PostList(generics.ListCreateAPIView):
    # …
    
    def filter_queryset(self, queryset):
        ordering = self.request.GET.get('order_by', None)
        author = self.request.GET.get('author', None)
        # filter queryset with filter_backends 🖟
        queryset = super().filter_queryset(queryset)
        if ordering == 'blog_views':
            queryset = queryset.annotate(
                address_views_count=Count('address_views')
            ).order_by('-address_views_count')
        
        if author:
            queryset = queryset.filter(owner__email=author)
        
        return queryset

Leave a comment