Django сохранить объект в БД, если условие выполнено - PullRequest
1 голос
/ 23 июня 2019

Я пытаюсь использовать сигнал django pre_save для записи экземпляра в дб, если выполняется определенное условие.

Как мне этого добиться?У меня есть обработчик функции, который вызывается pre_save, и я хочу отбросить сохранение экземпляра, если условие не выполнено.

Я хочу прервать всю цепочку сохранения.

Этоpre_save сигнализирует правильный способ сделать это?

1 Ответ

1 голос
/ 23 июня 2019

Вы можете вызвать исключение:

@receiver(pre_save, sender=MyModel)
def pre_save_handler(sender, instance, *args, **kwargs):
    # your logic
    if my_error:
        raise Exception('Aborting')

Это должно сработать, но имейте в виду, что это должно рассматриваться в ваших формах / сериализаторе, а не в сигнале

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...