32 lines
849 B
Python
32 lines
849 B
Python
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
|