【问题标题】:Django Mysql querying in loop but getting same outputDjango Mysql 循环查询但得到相同的输出
【发布时间】:2017-07-19 12:54:26
【问题描述】:

以下 Django 中的代码一直在打印相同的结果。即使 mysql 数据库中有更多行。请帮忙。

而真: 打印 Event.objects.last().id 时间.sleep(5)

====编辑==== 我错过了一些重要的事情。以上给出了正确的结果,但低于一个则不是。我在这里使用从数据库读取。但问题仍然是一样的。这是否意味着有一些从属数据库配置产生了问题?

而真: 打印 Event.objects.using("read").last().id 时间.sleep(5)

【问题讨论】:

  • 我认为 django 在请求线程中缓存了查询集。进一步执行相同的操作将返回相同的值。
  • 是的,似乎 django 正在缓存查询,但我该怎么办。 connection.close() 和 transaction.commit() 也没有帮助。

标签: mysql django loops caching django-models


【解决方案1】:

可以解决这个问题,你可以研究一下。

How to disable Django query cache?

总体而言。方法 enter_transaction_management 在 django 1.1 中不再存在

from django.db import transaction
transaction.enter_transaction_management()
transaction.commit()

【讨论】:

    【解决方案2】:

    【讨论】:

    • 是的,似乎 django 正在缓存查询,但我该怎么办。 connection.close() 和 transaction.commit() 也没有帮助。
    猜你喜欢
    • 2012-07-10
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    相关资源
    最近更新 更多