Валидация модели Django в чистом виде или в отдельных валидаторах?

Я довольно новичок в Django и мне интересно, какой лучший метод проверки моделей в Django? Есть ли какие-то преимущества в использовании чистого метода по сравнению с добавлением валидаторов в ваши модели? Под валидаторами я имею в виду, когда вы объявляете поле, заполняя список validator=[]. Я считаю, что модели легче читать, когда валидаторы находятся в другом пакете и объявлены в списке полей. Кроме того, я стараюсь валидировать данные перед тем, как инициализировать модели в сервисах. Что вы думаете / предпочитаете? Большое спасибо.

Разница в том, что валидатор будет применяться к объектам модели, созданным в формах и напрямую, т.е.:

form = MyModelForm(...
# and
my_model = MyModel(...

В то время как clean будет применяться только к форме. Если вы создаете объекты модели вне форм, то вам следует рассмотреть возможность использования валидаторов. Вы также можете обнаружить, что использование валидаторов является более чистым, более DRY методом проверки того, что создается, вместо переопределения функций clean формы.

Вернуться на верх