from rest_framework import viewsets import django_filters from .models import ClickableArea, Element3D from .serializers import ClickableAreaSerializer, Element3DSerializer class ClickableAreaViewSet(viewsets.ModelViewSet): queryset = ClickableArea.objects.all() serializer_class = ClickableAreaSerializer class NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter): pass class Element3DFilter(django_filters.rest_framework.FilterSet): parent = NumberInFilter( field_name="parent", lookup_expr="in", ) parent__isnull = django_filters.BooleanFilter( field_name="parent", lookup_expr="isnull", ) class Element3DViewSet(viewsets.ModelViewSet): queryset = Element3D.objects.all() serializer_class = Element3DSerializer filterset_class = Element3DFilter