search crunches for mobiles
This commit is contained in:
parent
e2ec179f69
commit
16def7df5d
|
|
@ -3,7 +3,6 @@ from rest_framework import permissions
|
||||||
from django_elasticsearch_dsl_drf import constants
|
from django_elasticsearch_dsl_drf import constants
|
||||||
from django_elasticsearch_dsl_drf.filter_backends import (
|
from django_elasticsearch_dsl_drf.filter_backends import (
|
||||||
FilteringFilterBackend,
|
FilteringFilterBackend,
|
||||||
GeoSpatialFilteringFilterBackend,
|
|
||||||
GeoSpatialOrderingFilterBackend,
|
GeoSpatialOrderingFilterBackend,
|
||||||
OrderingFilterBackend,
|
OrderingFilterBackend,
|
||||||
)
|
)
|
||||||
|
|
@ -13,9 +12,24 @@ from search_indexes import serializers, filters, utils
|
||||||
from search_indexes.documents import EstablishmentDocument, NewsDocument
|
from search_indexes.documents import EstablishmentDocument, NewsDocument
|
||||||
from search_indexes.documents.product import ProductDocument
|
from search_indexes.documents.product import ProductDocument
|
||||||
from utils.pagination import ESDocumentPagination
|
from utils.pagination import ESDocumentPagination
|
||||||
|
from tag.models import TagCategory
|
||||||
|
|
||||||
|
|
||||||
class NewsDocumentViewSet(BaseDocumentViewSet):
|
class CustomBaseDocumentViewSet(BaseDocumentViewSet):
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
if self.filter_fields:
|
||||||
|
for name in TagCategory.objects.all().values('index_name'):
|
||||||
|
self.filter_fields.update({
|
||||||
|
f'{name["index_name"]}_id': {
|
||||||
|
'field': 'tags.id',
|
||||||
|
'lookups': [constants.LOOKUP_QUERY_IN]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class NewsDocumentViewSet(CustomBaseDocumentViewSet):
|
||||||
"""News document ViewSet."""
|
"""News document ViewSet."""
|
||||||
|
|
||||||
document = NewsDocument
|
document = NewsDocument
|
||||||
|
|
@ -94,7 +108,7 @@ class MobileNewsDocumentViewSet(NewsDocumentViewSet):
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class EstablishmentDocumentViewSet(BaseDocumentViewSet):
|
class EstablishmentDocumentViewSet(CustomBaseDocumentViewSet):
|
||||||
"""Establishment document ViewSet."""
|
"""Establishment document ViewSet."""
|
||||||
|
|
||||||
document = EstablishmentDocument
|
document = EstablishmentDocument
|
||||||
|
|
@ -319,7 +333,7 @@ class MobileEstablishmentDocumentViewSet(EstablishmentDocumentViewSet):
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class ProductDocumentViewSet(BaseDocumentViewSet):
|
class ProductDocumentViewSet(CustomBaseDocumentViewSet):
|
||||||
"""Product document ViewSet."""
|
"""Product document ViewSet."""
|
||||||
|
|
||||||
document = ProductDocument
|
document = ProductDocument
|
||||||
|
|
|
||||||
|
|
@ -123,7 +123,7 @@ class FiltersTagCategoryBaseSerializer(serializers.ModelSerializer):
|
||||||
return obj in ['open_now', ]
|
return obj in ['open_now', ]
|
||||||
|
|
||||||
def get_param_name(self, obj):
|
def get_param_name(self, obj):
|
||||||
return 'tags_id__in'
|
return f'{obj.index_name}_id__in'
|
||||||
|
|
||||||
def get_fields(self, *args, **kwargs):
|
def get_fields(self, *args, **kwargs):
|
||||||
fields = super(FiltersTagCategoryBaseSerializer, self).get_fields()
|
fields = super(FiltersTagCategoryBaseSerializer, self).get_fields()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user