Как поднять ошибку из пользовательского метода сохранения в django?
Я определил пользовательский метод сохранения. В этом методе я хочу выдать ошибку, если одно из полей пусто.
def save(self, *args, **kwargs):
# do some operation and end up getting self.iot_boxes
# this model field (iot_boxes) can be a list full of values or an empty list
logger.info(f"Selected IOT boxes to be updated {self.iot_boxes}")
super().save(*args, **kwargs)
Изначально iot_boxes
может быть пустым или не пустым
или после некоторой операции он может оказаться пустым во время работы в методе save()
.
Как вывести какую-нибудь ошибку на странице администратора, когда self.iot_boxes
выдается пустым.
Не очень хорошее решение делать валидацию в методе сохранения.
Большинство представлений (и особенно в django admin) не могут обработать ValidationError в методе сохранения. Ваш пользователь получит ошибку 500...
Вы должны сделать эту валидацию в форме и поднять ValidationError там. Затем вызовите метод сохранения только в том случае, если данные формы модели "подходят для сохранения"