Как clean модели Django используется в Django Admin?

Django Admin обычно валидирует объект через ModelForm, а та вызывает модельную валидацию, включая Model.clean(). Ошибки ValidationError отображаются в форме до сохранения.

Короткий ответ

Что ответить на собеседовании

Django Admin обычно валидирует объект через ModelForm, а та вызывает модельную валидацию, включая Model.clean(). Ошибки ValidationError отображаются в форме до сохранения.

Подробный разбор

Ответ с пояснениями

Django Admin обычно валидирует объект через ModelForm, а та вызывает модельную валидацию, включая Model.clean(). Ошибки ValidationError отображаются в форме до сохранения.

clean() модели подходит для проверки взаимосвязи полей: например, дата окончания не раньше начала. Ошибку можно привязать к полю или сделать общей для формы. Это не то же самое, что clean() формы: у каждого свой контекст. Учитывайте исключённые из формы поля и не требуйте ещё не сохранённые m2m-связи в неподходящей фазе. Обычный вызов model.save() вне Admin не запускает full_clean автоматически, поэтому критичные инварианты дополнительно обеспечивают ограничениями БД и явной валидацией сервисного слоя.

Источник: github.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее