40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
from rest_framework import viewsets
|
|
from rest_framework.generics import RetrieveAPIView
|
|
|
|
from .models import Todo, TodoAnother, TodoTree, TodoYetAnother
|
|
from .serializer import (
|
|
TodoAnotherSerializer, TodoRecursiveSerializer, TodoSerializer, TodoTreeSerializer, TodoYetAnotherSerializer
|
|
)
|
|
|
|
|
|
class TodoViewSet(viewsets.ReadOnlyModelViewSet):
|
|
queryset = Todo.objects.all()
|
|
serializer_class = TodoSerializer
|
|
|
|
lookup_field = 'id'
|
|
lookup_value_regex = '[0-9]+'
|
|
|
|
|
|
class TodoAnotherViewSet(viewsets.ReadOnlyModelViewSet):
|
|
queryset = TodoAnother.objects.all()
|
|
serializer_class = TodoAnotherSerializer
|
|
|
|
|
|
class TodoYetAnotherViewSet(viewsets.ReadOnlyModelViewSet):
|
|
queryset = TodoYetAnother.objects.all()
|
|
serializer_class = TodoYetAnotherSerializer
|
|
|
|
|
|
class NestedTodoView(RetrieveAPIView):
|
|
serializer_class = TodoYetAnotherSerializer
|
|
|
|
|
|
class TodoTreeView(viewsets.ReadOnlyModelViewSet):
|
|
queryset = TodoTree.objects.all()
|
|
serializer_class = TodoTreeSerializer
|
|
|
|
|
|
class TodoRecursiveView(viewsets.ModelViewSet):
|
|
queryset = TodoTree.objects.all()
|
|
serializer_class = TodoRecursiveSerializer
|