Как поднять ошибку из пользовательского метода сохранения в 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 там. Затем вызовите метод сохранения только в том случае, если данные формы модели "подходят для сохранения"

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