Сигнал Django "after_db_save"

Сигнал post_save, согласно документации, "посылается в конец метода save().", но не после него.

Сценарий

Модель A 'сигнал post_save используется для вызова другой службы, которая создает модель B, поле a_id является внешним ключом к модели A. Но служба получает ошибку, утверждающую, что PK модели A не существует.

Так существует ли сигнал django, который срабатывает после сохранения экземпляра в базе данных?

Если нет, то как я должен реализовать эту функциональность? Я читал об использовании transaction.on_commit(), но как бы я использовал его внутри сигнала?

Я не смог заставить работать транзакцию, но решил эту проблему, перегрузив задачу в очередь задач (huey в моем случае). Просто сделайте функцию, украсьте ее @db_task и вызовите ее внутри сигнала post_save.

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