Что такое ViewSet
Python
Middle
Без компании
Что такое ViewSet
Ответы
ViewSet в Django REST framework — это класс, объединяющий логику для нескольких связанных представлений (views) в одном классе. Он предоставляет стандартные операции CRUD (Create, Read, Update, Delete) через методы `list()`, `retrieve()`, `create()`, `update()`, `partial_update()` и `destroy()`.
Пример:
```
from rest_framework import viewsets
from .models import Book
from .serializers import BookSerializer
class BookViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializer
```
**Ключевые особенности:**
- Автоматически генерирует URL-маршруты через `Router`.
- Поддерживает `ModelViewSet` (полный CRUD), `ReadOnlyModelViewSet` (только чтение) и кастомные ViewSet.
- Упрощает код, избегая дублирования.
**Использование с Router:**
```
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register(r'books', BookViewSet)
urlpatterns = router.urls
```