Django缓存bug ..即使禁用缓存

h3.*_*h3. 4 django

我有一个Django网站,其中发生了一个奇怪的错误.

在网站上,他们可以添加"出版物",这与不同名称的博客文章基本相同.

当他们修改现有帖子时,事情变得奇怪.他们首先在管理员中修改它,当他们进入网站时,更改不可见.就像旧版本被缓存一样.

事实上,在开始时我很确定它是一个浏览器缓存错误.但经过一些试验,事情变得有些怪异了.

我发现清除浏览器缓存或使用不同的浏览器并不能解决问题,但有趣的是它在刷新时在旧版本和修改版本之间切换.

所以,如果帖子的主体是"Hello World",我将其修改为"Goodbye cruel world"然后去网站多次刷新页面,我会看到"Hello World",然后是"Goodbye cruel world" ,然后是"Hello World"等等......无论我继续做多久.

但它并不止于此......大约24小时后,一切都恢复原状并正常工作.没有排列,网站坚持新版本......

我几乎说不出话来,因​​为我使用相同的服务器构建了超过50个其他Django站点,我以前从未遇到过这个问题.

我正在使用带有MySQL DB的最新django(1.3)并且未启用缓存..

有任何想法吗 ?

编辑:Apache的优雅重启解决了问题..但每次更新后重启apache并不是最好的事情..

更新:我刚刚重新设置了我的开发环境,我发现开发服务器的bug更加严重.无论我多久刷新或清除缓存,修改后的竞争都不会出现,直到我杀死/重新启动开发服务器.

Dan*_*man 6

通用视图文档中明确解决了该问题.在您的查询集extra_context字典评估一次,当URLconf中首先处理,之后,他们将继续使用相同的值各一次.这就是为什么它们只在您重置Apache或开发服务器时才会更改.

如链接页面所述,解决方案是使用返回查询集的callables,而不是在字典本身中指定查询集.