Skip to content

Latest commit

 

History

History
23 lines (20 loc) · 2.35 KB

RAQ.md

File metadata and controls

23 lines (20 loc) · 2.35 KB

Претензии ревьюров достойные обсуждения.

Р: При испоьзовании всех полей модели в сериализаторе, достаточно использовать '__all__' 
  • Явное лучше неявного.
  • При добавлении поля в модель в будущем, оно также попадёт в сериализатор, что не всегда является желательным и потребует редактирования сериализатора. Также, при необходимост исключения существующего поля, достаточно вычеркнуть его из списка.
Р: Подписку/Избранное/Корзину лучше сделать как отдельную модель.
  • Django специально предоставляет возможность не заморачиваться прописыванием М2М моделей и не тратить чернила на их явное прописывание, если эти модели состоят только из FK, а иначе - зачем нам Django?
Р: user = self.context.get('request').user слишком сложно, нужно писать user = self.request.user  
  • К сожалению, у сериализатора, в отличии от вюьсета, изначально нет атрибута request. Создание такого атрибута вручную - ничем не лучше передачи через контекст. Что то словарь, что это словарь, оба они словари. При этом, конечно, не обязательно передавать request, можно передать только user, а можно использовать view, которое уже есть в контексте.
Р: Проверять вводные данные нужно в методах валидации сериализатора, а не в модели.
  • Это на самом деле так, если б не одно НО. У нас есть админка и удаление проверки из модели позволит администратору вводить некорректные данные.