我遇到了一个有时不更新的字段的问题。只是想知道以下内容在 Django 模型实例上是否不安全。
obj.field1 = True
obj.save()
obj.field2 = True
obj.save()
由于我没有调用 obj.update_from_db() ,第二次保存重置/覆盖是否存在任何风险
field1
?
不涉及 post_save 钩子,周围的代码是同步的,数据库后端是 PostgreSQL。
此外,save() 是同步的(从某种意义上说,数据库更新将在函数返回之前发生)?
如果您使用 PyCharm,您可以随时前往
ctrl+b
并检查该函数。
据我所知,没有await,没有async,所以它应该是同步的。
无论如何。一旦您将其部署在
Apache
上并创建 2 个或更多实例,这可能会是一个小问题。如果这些多个实例使用相同的数据库,则可能会出现一些问题。但通常这个问题可以在数据库端解决(如果您只使用“已知”的)。
答案:应该保存起来使用。