gpt4 book ai didi

mysql - 外部 SQL 行插入在同一函数调用中未显示在 Django 中

转载 作者:行者123 更新时间:2023-11-29 14:38:44 25 4
gpt4 key购买 nike

我有一个 django View ,它调用一个外部 Web 服务,该服务将一行插入到我的 django 数据库中并返回一个 ID,然后我用它来尝试通过 django 进行查询。但是 django 看不到记录(在 django 1.2.5、dev runserver 和真实环境上运行)。

这是一个非常简单的 View :

  1. 调用 urllib2 请求外部 Web 服务
  2. 从所述服务获取返回 ID
  3. item = Comp.objects.get(id = return_id_new_row)
    错误找不到对象。
    我直接检查数据库,对象就在那里。
  4. 我用 FILTER 替换 get,当我执行打印项目时,我可以看到带有该对象的查询集,但一旦我尝试触摸它,我就会收到错误!
  5. 我在 django 中使用原始 sql(不接触 django)我可以很好地查询该行,但无法将其放入我的 django 世界?!

django 是如何缓存的?为什么在同一调用中看不到外部插入?我需要刷新一些东西吗?

欢迎任何帮助!

最佳答案

这听起来像是一个交易问题。您在 View 中执行的任何操作都将在同一事务中,因此您将看到更改。但外部服务将使用不同的事务,因此在提交当前事务之前您不会看到更改。

看看 Django documentation on transactions 。您可能想要使用手动事务管理并在尝试获取新项目之前提交。

关于mysql - 外部 SQL 行插入在同一函数调用中未显示在 Django 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8444806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com