From 9715122c6c736436ac0eb632b3589e607e59a23f Mon Sep 17 00:00:00 2001 From: Pelagic Date: Thu, 28 Sep 2023 23:50:03 +0300 Subject: [PATCH] Removed the mistaken shop facet dependency. --- starfields_drf_generics/filters.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/starfields_drf_generics/filters.py b/starfields_drf_generics/filters.py index 907675d..99bbde2 100644 --- a/starfields_drf_generics/filters.py +++ b/starfields_drf_generics/filters.py @@ -2,7 +2,6 @@ from django_filters import rest_framework as filters from django.contrib.postgres.search import TrigramSimilarity from django.db.models.functions import Concat from django.db.models import CharField -from shop.models.product import Product, Facet from rest_framework.filters import BaseFilterBackend import operator from django.template import loader @@ -216,13 +215,20 @@ class FacetFilter(BaseFilterBackend): def assign_view_facets(self, request, view): if not hasattr(view, 'facets'): + if hasattr(view, 'facet_class'): + self.facet_class = self.get_facet_class(view, request) + + assert self.facet_class is not None, ( + f"{view.__class__.__name__} should include a `facet_class` attribute" + ) + if view.category: if view.category.tn_ancestors_pks: - view.facets = Facet.objects.filter(Q(category__id=view.category.id) | Q(category__id__in=view.category.tn_ancestors_pks.split(','))).prefetch_related('facet_tags') + view.facets = self.facet_class.objects.filter(Q(category__id=view.category.id) | Q(category__id__in=view.category.tn_ancestors_pks.split(','))).prefetch_related('facet_tags') else: - view.facets = Facet.objects.filter(category__id=view.category.id).prefetch_related('facet_tags') + view.facets = self.facet_class.objects.filter(category__id=view.category.id).prefetch_related('facet_tags') else: - view.facets = Facet.objects.filter(category__tn_level=1).prefetch_related('facet_tags') + view.facets = self.facet_class.objects.filter(category__tn_level=1).prefetch_related('facet_tags') def get_filters_dict(self, request, view): """