Django 后台:关闭数据库事务

8 投票
4 回答
2499 浏览
提问于 2025-04-15 12:14

我注意到,在Django的管理界面中,所有的更新默认都是以事务的方式进行的。

我需要做的事情有两个选择: - 关闭事务(可以是全局关闭,也可以是针对某个特定的管理视图) - 在通过管理界面保存的实体的save()方法中,提交这个事务

这样做的原因是我重写了save()方法,并且需要通知一个外部的、不是Django的系统,关于刚刚发生的变化。不过,由于Django还没有提交事务,外部系统并没有看到这个更新。

有没有人有什么建议可以实现这个目标呢?

4 个回答

0

一个更好的解决办法可能是看看你数据库的事务隔离设置,因为这才是真正导致外部进程无法“看到”更新的原因……

5

你可以使用 commit_manually 来在某个视图或函数中完全控制一个事务。

撰写回答