【发布时间】:2013-07-16 11:54:28
【问题描述】:
保存模型时,我需要将 django 多对多字段保存到第三方服务器。但是,第三方服务器可能不可用,在这种情况下,我需要中止整个保存操作。
是否可以从 m2m_changed 阶段中止保存模型?
【问题讨论】:
-
是的。如果不可用,只需调用
instance.delete()或在save方法中检查服务的可用性,然后保存。
保存模型时,我需要将 django 多对多字段保存到第三方服务器。但是,第三方服务器可能不可用,在这种情况下,我需要中止整个保存操作。
是否可以从 m2m_changed 阶段中止保存模型?
【问题讨论】:
instance.delete() 或在save 方法中检查服务的可用性,然后保存。
是的,transactions 框架正式支持这一点。它基本上允许您保存(在数据库之外)数据库更改的内容,直到您实际告诉他提交该更改。
通过等待第三方,您可以提交或放弃交易。这甚至可以通过事务的中间件在请求/响应的基础上进行。
请注意您使用的 Django 版本,因为事务在 1.6 上发生了一些变化。
【讨论】: