Django的模型保存流程

Den*_*nzo 4 python django ajax google-app-engine

我注意到,不能保证在模型上调用save()之后数据库同步更新。

我通过对以下方法进行ajax调用进行了简单的测试

def save(request, id)
  product = ProductModel.objects.find(id = id)
  product.name = 'New Product Name'
  product.save()

  return HTTPResponse('success')
Run Code Online (Sandbox Code Playgroud)

在客户端,我等待上述方法的响应,然后执行findAll方法来检索产品列表。返回的产品列表包含更新产品名称的旧值。

但是,如果我延迟了对产品列表的请求,则它包含新值,就像应该的那样。

这意味着如果在将新值写入数据库之前被触发,则返回HTTPResponse('success')

如果以上情况成立,那么只有在数据库更新后,才有办法返回HTTP响应。

Dan*_*man 5

您应该更突出地提到App Engine。我已将其添加到标签中。

这绝对是因为您对GAE缺乏了解,而不是与Django无关。您应该阅读GAE文档以了解数据存储区中最终的一致性,并适当地构建模型和查询。

使用标准关系数据库运行的普通Django不会出现此问题。