2.3 KiB
2.3 KiB
Исправление декораторов авторизации - 2025-08-12
Проблема
Ошибка в логах: TypeError: Cannot return null for non-nullable field Author.slug
Анализ
Проблема была в декораторах авторизации login_required и login_accepted в файле services/auth.py. Эти декораторы пытались создавать Author объекты при проверке авторизации, что приводило к возврату объектов с пустыми полями, включая slug = None.
Решение
- Убрал логику создания Author объектов в декораторе
login_required - Убрал логику создания Author объектов в декораторе
login_accepted - Убрал установку
author = Noneв контексте
Изменения в файлах
services/auth.py- убрана логика создания автора в декораторахrequirements.dev.txt- удалена зависимость pre-commit.pre-commit-config.yaml- удален файл конфигурации.git/hooks/pre-commit- удален hook
Принцип
Авторы должны создаваться только в резолверах при необходимости, а не в декораторах авторизации. Декораторы должны только проверять права доступа.
Коммиты
503bbc1- fix: remove author creation from auth decorators2b1c3c2- chore: remove pre-commit configuration and dependenciesc8ff24e- chore: remove pre-commit-config.yaml file
Статус
✅ Исправлено - декораторы авторизации больше не создают Author объекты ✅ Убрано - все настройки pre-commit удалены ✅ Протестировано - тесты проходят успешно
Следующие шаги
- Протестировать на staging сервере
- Проверить, что ошибка
Author.slugбольше не возникает - При необходимости добавить создание автора в конкретных резолверах