31 lines
888 B
Python
31 lines
888 B
Python
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', )
|
|
product_id = filters.NumberFilter(field_name='object_id', )
|
|
|
|
class Meta:
|
|
"""Meta class."""
|
|
|
|
model = models.Review
|
|
fields = (
|
|
'establishment_id',
|
|
'product_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
|
|
|
|
def by_product_id(self, queryset, name, value):
|
|
if value not in EMPTY_VALUES:
|
|
return queryset.by_product_id(value, content_type='product')
|
|
return queryset
|