我最近将我的 django 框架从 1.3 升级到 1.4。今天我在登录页面上运行了一些测试。我有一个开关,用于确定是否应在登录屏幕上显示"重置密码"链接。这个测试在 1.3 下效果很好,但在 1.4 下就不行了。
我已经为登录页面设置了自己的视图和模板,如下所示:
urlpatterns = patterns('framework.views',
url(r'^$', 'index'),
url(r'^login/$', 'login_view'),
url(r'^logout/$', 'logout_view'),
...
经过进一步调查,我注意到如果我第一次浏览到登录页面,它可以工作。如果我随后从 urls.py 文件中删除条目(即/login/条目),我仍然可以浏览到/login/页面。即使我重新启动 django 测试服务器,该 url 条目仍然有效。即使删除urls.pyc文件也不会给我404。只有当我尝试发布时,我才会得到 404。顺便说一下,这种现象不会发生在我的其他一些网址上。
我有一种感觉,我的测试失败的原因是 django 以某种方式以某种神秘的方式缓存了/login/请求,因此登录页面永远不会为我在屏幕上运行的每个测试刷新。有没有人知道如何克服这个问题,也许还有为什么这个特定功能发生了变化。它与新实现的模板响应有什么关系吗?
你用火狐吗?尝试删除 Firefox 缓存,或您正在使用的任何浏览器缓存...
我昨天遇到了同样的问题。我环顾四周,发现很多人都有这个问题。看看这个...
不要责怪django,就像我排在第一名时所做的那样;)(我后来责怪我,在知道真正的问题之前)...
让我们责怪协议:P
希望这能解决您的问题!
编辑:在这里,您有一些可能的解决方案(如果您使用Firefox):
1) http://support.mozilla.org/es/questions/848678
2) https://superuser.com/questions/23134/how-to-turn-off-firefox-cache