filter by establishment for review

This commit is contained in:
alex 2019-11-18 11:19:35 +03:00
parent f4ebd58e09
commit 4412e39e96
2 changed files with 27 additions and 0 deletions

23
apps/review/filters.py Normal file
View File

@ -0,0 +1,23 @@
from django.core.validators import EMPTY_VALUES
from django_filters import rest_framework as filters
from review import models
class ReviewFilter(filters.FilterSet):
"""Review filter set."""
establishment_id = filters.NumberFilter(field_name='object_id', )
class Meta:
"""Meta class."""
model = models.Review
fields = (
'establishment_id',
)
def by_establishment_id(self, queryset, name, value):
if value not in EMPTY_VALUES:
return queryset.by_establishment_id(value, content_type='establishment')
return queryset

View File

@ -1,7 +1,9 @@
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import generics, permissions from rest_framework import generics, permissions
from review import models from review import models
from review import serializers from review import serializers
from review import filters
from utils.permissions import IsReviewerManager, IsRestaurantReviewer from utils.permissions import IsReviewerManager, IsRestaurantReviewer
@ -10,6 +12,8 @@ class ReviewLstView(generics.ListCreateAPIView):
serializer_class = serializers.ReviewBaseSerializer serializer_class = serializers.ReviewBaseSerializer
queryset = models.Review.objects.all() queryset = models.Review.objects.all()
permission_classes = [permissions.IsAuthenticatedOrReadOnly, ] permission_classes = [permissions.IsAuthenticatedOrReadOnly, ]
filter_backends = (DjangoFilterBackend,)
filterset_class = filters.ReviewFilter
class ReviewRUDView(generics.RetrieveUpdateDestroyAPIView): class ReviewRUDView(generics.RetrieveUpdateDestroyAPIView):