gpt4 book ai didi

由 post_save 信号执行的 Django 代码发生在原子事务中

转载 作者:行者123 更新时间:2023-12-02 05:15:23 24 4
gpt4 key购买 nike

升级到 Django 1.6 在我的代码中引入了一个棘手的问题:由 post_save 信号触发的数据库操作包含在 与 transaction.atomic():Django 的 get_or_create() block 。

对我的影响是自定义 SQL(非托管)没有及时提交到数据库。

是否有一个不同的信号可供我使用,在 obj.save() 退出其原子 block 之后发送?

还是我诊断错了?

最佳答案

Django 的 get_or_create() 在原子 block 中执行其 save(),并且 post_save 触发的信号嵌套在该原子 block 内。

我的解决方法是在自定义管理器中使用我自己的版本覆盖 native get_or_create(),而不使用 transaction.atomic() block 。

关于由 post_save 信号执行的 Django 代码发生在原子事务中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21741893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com