Django Overriding Model Clean () vs Save ()

У меня есть несколько действий, которые нужно выполнить при сохранении моделей, особенно от администратора. Я использую несколько полей и проверяю, чтобы заполнить одно поле или другое. Я также создаю полевую пулю. RIght теперь они разделены между переопределением функций очистки и сохранения. Он работает сейчас, но мне любопытно, когда использовать их каждый. Я просмотрел документы, и я не мог найти, что конкретно использовать.

One Solution collect form web for “Django Overriding Model Clean () vs Save ()”

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

Сохранить – это место, где можно изменить способ сохранения модели. Например, я использовал save для создания обрезки загруженного изображения. ValidationError s не пойманы, если они возникают здесь, и я чувствую, что это самая важная практическая разница между ними.

  • Загрузка Django: удалять загруженные дубликаты, использовать существующий файл (проверка на основе md5)
  • Подклассовые модели django со встроенными запросами
  • Сигналы, зарегистрированные более одного раза в django1.1 testserver
  • Перемещение моделей между приложениями Django (1.8) с требуемыми ссылками ForeignKey
  • Изменение размера и преобразования изображения Django перед загрузкой
  • forms.ModelForm не сохраняет поля ManyToMany
  • Почему это переопределение функции Model.save () в Django не работает?
  • python django - страница не найдена ошибка (404) - статическая ошибка
  • Python - лучший язык программирования в мире.