diff --git a/core/viewsets.py b/core/viewsets.py index a70a880d..31da5b55 100644 --- a/core/viewsets.py +++ b/core/viewsets.py @@ -2,7 +2,7 @@ import logging import uuid from uuid import UUID -from django.db.models import Q +from django.db.models import Q, Prefetch from django.http import Http404 from django.shortcuts import get_object_or_404 from django.utils.decorators import method_decorator @@ -308,6 +308,19 @@ class BrandViewSet(EvibesViewSet): "list": BrandSimpleSerializer, } + def get_queryset(self): + queryset = Brand.objects.all() + + if self.request.user.has_perm("view_category"): + queryset = queryset.prefetch_related("categories") + else: + queryset = queryset.prefetch_related( + Prefetch("categories", queryset=Category.objects.filter(is_active=True)) + ) + + return queryset + + @extend_schema_view(**PRODUCT_SCHEMA) class ProductViewSet(EvibesViewSet):