Dynamic front filters #1
This commit is contained in:
parent
ef1af8c3ac
commit
be581c7b7d
|
|
@ -192,6 +192,10 @@ class WineRegionQuerySet(models.QuerySet):
|
|||
def with_sub_region_related(self):
|
||||
return self.prefetch_related('wine_sub_region')
|
||||
|
||||
def having_wines(self, value = True):
|
||||
"""Return qs with regions, which have any wine related to them"""
|
||||
return self.exclude(wines__isnull=value)
|
||||
|
||||
|
||||
class WineRegion(models.Model, TranslatedFieldsMixin):
|
||||
"""Wine region model."""
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ class WineRegionListView(generics.ListAPIView):
|
|||
pagination_class = None
|
||||
model = models.WineRegion
|
||||
permission_classes = (permissions.AllowAny,)
|
||||
queryset = models.WineRegion.objects.with_sub_region_related().all()
|
||||
queryset = models.WineRegion.objects.with_sub_region_related().having_wines()
|
||||
serializer_class = serializers.WineRegionSerializer
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ class TagCategoryFilterSet(TagsBaseFilterSet):
|
|||
|
||||
def by_product_type(self, queryset, name, value):
|
||||
if value == product_models.ProductType.WINE:
|
||||
queryset = queryset.filter(index_name='wine-color')
|
||||
queryset = queryset.filter(index_name='wine-color').filter(tags__products__isnull=False)
|
||||
queryset = queryset.by_product_type(value)
|
||||
return queryset
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user