我注意到无法保证在对模型调用 save() 后数据库会同步更新。
我通过对以下方法进行 ajax 调用来完成一个简单的测试
def save(request, id)
product = ProductModel.objects.find(id = id)
product.name = 'New Product Name'
product.save()
return HTTPResponse('success')
在客户端,我等待上述方法的响应,然后执行检索产品列表的 findAll 方法。返回的产品列表包含更新产品名称的旧值。
但是,如果我延迟对产品列表的请求,那么它就会包含新值,就像它应该的那样。
这意味着如果在新值写入数据库之前触发,返回 HTTPResponse('success')。
如果以上是正确的,那么有没有办法只在数据库更新后返回 HTTP 响应。
最佳答案
您应该更突出地提到 App Engine。我已将其添加到标签中。
这肯定是因为你对GAE缺乏了解,而不是与Django有任何关系。您应该阅读关于 eventual consistency in the datastore 的 GAE 文档,并适本地构建您的模型和查询。
使用标准关系数据库运行的普通 Django 不会出现此问题。
关于python - Django 的模型保存流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19474555/