gault-millau/apps/search_indexes/views.py
2019-09-10 12:58:39 +03:00

65 lines
1.7 KiB
Python

"""Search indexes app views."""
from rest_framework import permissions
from django_elasticsearch_dsl_drf.filter_backends import FilteringFilterBackend
from django_elasticsearch_dsl_drf.viewsets import BaseDocumentViewSet
from django_elasticsearch_dsl_drf.pagination import PageNumberPagination
from search_indexes import serializers, filters
from search_indexes.documents import EstablishmentDocument, NewsDocument
class NewsDocumentViewSet(BaseDocumentViewSet):
"""News document ViewSet."""
document = NewsDocument
lookup_field = 'id'
pagination_class = PageNumberPagination
permission_classes = (permissions.AllowAny,)
serializer_class = serializers.NewsDocumentSerializer
ordering = ('id',)
filter_backends = [
filters.CustomSearchFilterBackend,
]
search_fields = (
'title',
'subtitle',
'description',
)
translated_search_fields = (
'title',
'subtitle',
'description',
)
class EstablishmentDocumentViewSet(BaseDocumentViewSet):
"""Establishment document ViewSet."""
document = EstablishmentDocument
lookup_field = 'id'
pagination_class = PageNumberPagination
permission_classes = (permissions.AllowAny,)
serializer_class = serializers.EstablishmentDocumentSerializer
ordering = ('id',)
filter_backends = [
FilteringFilterBackend,
filters.CustomSearchFilterBackend,
]
search_fields = (
'name',
'description',
'public_mark',
'toque_number',
'price_level',
)
translated_search_fields = (
'name',
'description',
)
filter_fields = {
'tag': 'tags.id'
}