Напишите view-класс PostViewSet(), унаследовавшись от ModelViewSet, и создайте роутер для него.
Созданный роутер должен генерировать два эндпоинта:
api/v1/posts/,api/v1/posts/<int:pk>/.
Через эти эндпоинты должны быть доступны любые операции с моделью Post:
- POST-запрос на
api/v1/posts/создаст новую запись. - Запросы PUT, PATCH или DELETE к адресу
api/v1/posts/<pk>/изменят или удалят существующую запись. - GET-запрос на те же адреса вернёт список объектов или один объект.
Подсказка:
При регистрации роутера используйте URL-префикс api/v1/posts
Код views.py:
from rest_framework import viewsets
from .models import Post
from .serializers import PostSerializer
class PostViewSet(viewsets.ModelViewSet):
queryset = Post.objects.all()
serializer_class = PostSerializer
Код urls.py:
from rest_framework.routers import SimpleRouter
from django.urls import include, path
from posts.views import PostViewSet
router = SimpleRouter()
router.register('api/v1/posts', PostViewSet)
urlpatterns = [
path('', include(router.urls)),]