- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我目前正在使用 Python/Django 工作,但我遇到了 Django 在“ session 内”缓存查询集的问题。
如果我运行 python manage.py shell
并这样做:
>>> from myproject.services.models import *
>>> test = TestModel.objects.filter(pk = 5)
>>> print test[0].name
>>> John
现在,如果我直接在 SQL 中将其更新为 Bob 并再次运行,它仍然会显示 John。但是,如果我按 CTRL+D 退出(退出)并运行相同的东西,它将更新并现在打印 Bob。
我的问题是我在屏幕上运行 SOAP 服务,它总是返回相同的结果,即使数据发生变化也是如此。
我需要一种方法来强制查询再次从数据库中实际提取数据,而不仅仅是提取缓存数据。我可以只使用原始查询,但对我来说这不是解决方案,有什么想法吗?
最佳答案
查询集未缓存“在 session 中”。
Django documentation: Caching and QuerySets提及:
Each QuerySet contains a cache to minimize database access. Understanding how it works will allow you to write the most efficient code.
In a newly created QuerySet, the cache is empty. The first time a QuerySet is evaluated – and, hence, a database query happens – Django saves the query results in the QuerySet’s cache and returns the results that have been explicitly requested (e.g., the next element, if the QuerySet is being iterated over). Subsequent evaluations of the QuerySet reuse the cached results.
Keep this caching behavior in mind, because it may bite you if you don’t use your QuerySets correctly.
(强调我的)
有关何时评估查询集的更多信息,请参阅 this link .
如果更新查询集对您的应用程序至关重要,则您必须每次都对其进行评估,无论是在单个 View 函数中还是使用 ajax。
这就像一次又一次地运行 SQL 查询。就像过去没有可用的查询集并且您将数据保存在必须刷新的某种结构中一样。
关于python - Django 缓存查询(我不想这样),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30644737/
我的应用程序中有一个 IList 站点,并且站点有大量属性。 我想将此列表转换为 JSON,以便在类似于此的下拉列表中使用 var sites = SiteRepository.FindAll
我正在将一些代码从 bluebird 切换到原生 Promises,并且我对原生 promises 吞下错误这一事实感到相当恼火,即使没有定义 .catch() 也是如此。它使调试变得不可能,除非您在
在同步访问共享资源时,是否有理由不使用读/写锁而不是普通的互斥锁(基本上只是写锁),除了它具有比我可能需要的更多功能的哲学原因? 换句话说,如果我只是默认使用读/写锁作为我首选的同步结构,我是不是在踢
我刚进入这个元素,代码已经写好了,但我们发现了一个问题。当您单击菜单中的任何位置时,它会变成金色,您看不到菜单该部分中的任何链接。您可以再次单击它,它将返回到正常状态。这只发生在 Internet E
这是一个简单的类和简单的测试函数: #include #include namespace { using namespace std; } class NameStream {
我有一个 std::vector其中 Foo是一个包含 Foo( Foo&& ) noexcept 的类. 向容器中添加对象完美无缺,但是使用 std::vector::erase( iterator
我正在通过这段代码使用各种浏览器尝试 localStorage 和 JSON: function getStorage() { stored = JSON.pa
您可能认为此问题与 Running two projects at once in Visual Studio 完全相同.不完全是,恰恰相反。 我有一个带有两个 MVC3 项目的 VS 2010 解决
我正在制作一个网站:http://arc-angyal.hu/ 我的第一个问题是,我无法让左侧的红色 div 足够高以填充页眉和页脚之间的空间。它位于标题之后和导航之前。我已经设置: html, bo
根据 This Question ,我正在使用线程来终止用户输入的函数。我的代码看起来像: bool stopper = false; thread stopThread(userStop, &sto
我是一名优秀的程序员,十分优秀!