Уведомления

Группа в Telegram: @pythonsu

#1 Май 13, 2015 04:48:56

CrHD
Зарегистрирован: 2015-05-13
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Pre_save vs clean_fields (и pre_save exception)

День добрый.
Есть самая примитивная модель. Есть простое условие, при невыполнении которого мы должны не дать юзеру создать\сохранить модель через админку. Метод save не переопределять.
Когда копал - откопал два способа: pre_save и clean_fields.
С clean_fields все классно получилось. Просто определил метод в модели, вписал простое условие, в нем сделал raise ValidationError с нужным сообщением, и оно прекрасно отрабатывает в админке.
А вот с pre_save как-то не сложилось.

@receiver(pre_save, sender=Item)
def item_pre_save_callback(sender, **kwargs):
    instance = kwargs['instance']

Даже условие отработает, если добавить. А вот как эксепшн по человечески выкинуть (или отловить) - я не понимаю, ибо что-то вроде
raise ValidationError
валит мне большую html с ошибкой.
Собственно вопросы:
- как с помощью pre_save вывести мессадж в админку, о том что модель нельзя сохранить;
- какой способ более правильный?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version