【发布时间】:2010-11-02 20:08:19
【问题描述】:
我注意到默认情况下,django 管理站点中的所有更新都是作为事务完成的。
我需要: - 关闭事务(全局或特定管理视图) - 在通过管理界面保存的实体的 save() 方法中,提交事务
原因是我覆盖了 save() 方法,并通知了外部的非 django 系统刚刚发生的更改。但是,外部系统看不到更新,因为 django 还没有提交事务。
有人对如何实现这一点有任何建议吗?
【问题讨论】:
-
好问题。这是 Django 管理员中竞争条件的常见来源,如果您不知道 Django 在视图中使用事务,这可能是一个令人难以置信的令人沮丧的问题。
-
我们在pypi.python.org/pypi/django-celery-transactions 方面取得了很大的成功。这样做是为了确保在启动后台任务时运行的事务在允许任务运行之前完成
标签: database django transactions django-admin