aircox/aircox/viewsets.py
2019-09-23 12:38:44 +02:00

27 lines
860 B
Python

from django.db.models import Q
from rest_framework import viewsets
from django_filters import rest_framework as filters
from .models import Sound
from .serializers import SoundSerializer
from .views import BaseAPIView
class SoundFilter(filters.FilterSet):
station = filters.NumberFilter(field_name='program__station__id')
program = filters.NumberFilter(field_name='program_id')
episode = filters.NumberFilter(field_name='episode_id')
search = filters.CharFilter(field_name='search', method='search_filter')
def search_filter(self, queryset, name, value):
return queryset.search(value)
class SoundViewSet(BaseAPIView, viewsets.ModelViewSet):
serializer_class = SoundSerializer
queryset = Sound.objects.available().order_by('-pk')
filter_backends = (filters.DjangoFilterBackend,)
filterset_class = SoundFilter