Вы можете вызвать любое исключение в функции прослушивателя pre_save
, оно будет распространяться на ваш вызов save()
и препятствовать его успешному завершению.
Оно будет всплывать там, где вы вызываете save()
отсюда вы можете поймать его (попробовать / исключить…) и уведомить пользователя.