【发布时间】:2012-11-25 21:20:49
【问题描述】:
我有一个基于 SQL 数据库的 django 模型 TestModel。
只要我这样做
TestModel.objects.all()
如果我从同一个进程多次运行它,我似乎得到了相同的结果。我测试了通过手动删除(不使用任何 django 原语)从构建模型的表中的一行,查询仍然返回相同的结果,即使删除后显然应该有更少的对象。
是否有某种缓存机制,每次我想检索对象时 django 都不会进入数据库?
如果有,有没有办法我仍然可以强制 django 在每次查询时访问数据库,最好不编写原始 SQL 查询?
我还应该指定,通过重新启动该过程,模型再次返回正确的对象,我不再看到已删除的对象,但如果我删除更多,问题再次出现。
【问题讨论】:
-
我对 Django 不太了解,但上次我遇到类似的问题时,我意识到我没有使用我认为的数据库。你最近没有改变路径或任何事情,是吗?
-
@PeterBB 我更新了描述,我确信我使用的是正确的数据库,因为每次重新启动使用该模型的进程都会更新更改。
-
这发生在 Web 请求之间还是在 shell 级别?
-
非常奇特。你能提供你的 Django 和 DB 版本吗?
标签: python django orm django-models