Ответ 1
Вы должны использовать clean для работы, связанной с валидацией, и для разбора/изменения/очистки другой информации. Здесь могут произойти капитализация полей и создание пули. Я также использую clean для принудительного использования поля типа post_type
для определенного значения в прокси-моделях. Если вы очистите django.core.exceptions.ValidationError('error text')
внутри чистой, 'error text'
добавляется в form.non_field_errors
.
Сохранить - это место, где можно изменить способ сохранения модели. Например, я использовал save для создания обрезки загруженного изображения. ValidationError
не пойманы, если подняты здесь, и я чувствую, что это самая важная практическая разница между ними.