Урок 43. Практикум 10: Auth, Permissions, Swagger
⚡ Кратко: Практикум 10 — Auth, Permissions, Swagger
5 практических задач: извлечение пользователя из запроса, кастомные разрешения, пользовательские permissions в Meta, управление БД (dumpdata/loaddata) и настройка Swagger через drf-yasg.
- Задание 1:
perform_create+get_queryset— авто-привязка и фильтрация заказов поrequest.user - Задание 2: Кастомный класс
IsCustomerOrReadOnlyна основеBasePermission - Задание 3: Пользовательское разрешение
can_view_statisticsвMeta+ эндпоинт статистики + группа в админке - Задание 4:
dumpdata/loaddata— резервная копия и восстановление БД - Задание 5:
drf-yasg— Swagger и ReDoc для документации API
Топ-3 ошибки: 1) Забыть вызвать makemigrations после добавления Meta.permissions. 2) Применить только has_permission без has_object_permission для object-level. 3) Путать заголовок Authorization: Token (DRF Token) с Bearer (JWT).
📖 О чём этот урок
Урок 43 — практикум 10 по теме Auth и DRF в Django. Задачи взяты из лекции «Django Practicum 10». Новый теоретический материал не вводится — только практическое применение концепций, изученных в уроках 40–42.
Если нужно освежить теорию разрешений и сигналов — загляни в Урок 42.
Что закрепляем
perform_create()иget_queryset()— привязка и фильтрация по текущему пользователюBasePermission—has_permission()иhas_object_permission()Meta.permissions— пользовательские разрешения на уровне моделиhas_perm()— проверка нестандартных разрешений в представленииdumpdata/loaddata— резервная копия и восстановление базы данныхdrf-yasg— автоматическая Swagger-документация для DRF API
📚 Что повторить перед изучением
- ← Урок 42: Виды разрешений, сигналы
- DRF:
BasePermission,has_permission(),has_object_permission() - DRF:
ModelViewSet,ListCreateAPIView,perform_create() - Django:
Meta.permissions,user.has_perm(), группы и разрешения в Admin - Команды manage.py:
makemigrations,migrate,dumpdata,loaddata
🎯 Что изучать дальше
- → Урок 44: JWT — логин и регистрация
- JWT: кастомизация claims, Blacklist-приложение, ротация refresh-токенов
- drf-spectacular — альтернатива drf-yasg с поддержкой OpenAPI 3.0
- Django Guardian — объектные разрешения на уровне строки БД