我无法更新Django的RedirectView.它一直引用旧URL,状态为301 Moved Permenantly

hob*_*es3 5 apache django http-status-code-301 django-class-based-views

很抱歉,如果这个问题应该在Server Vault中.我无法确定这是编程错误还是服务器配置错误.

我最近将我的git提交推送到了实时服务器,我注意到一些非常令人沮丧的事情.

无论我如何编辑urls.py,我似乎无法更新RedirectView!

这是我的根 mysite/urls.py

urlpatterns = patterns('',
    url(r'^$', RedirectView.as_view(url=reverse_lazy('order_list')), name='home'),
    url(r'^doors/', include('doors.urls')),
    url(r'^accounts/', include('registration.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^{}/'.format(settings.DAJAXICE_MEDIA_PREFIX), include('dajaxice.urls')),
)
Run Code Online (Sandbox Code Playgroud)

命名的URL order_list来自我的一个应用程序urls.py

urlpatterns = patterns('doors.views',
    url(r'^order/$', OrderListView.as_view(), name='order_list'),
    # And more URL patterns...
)
Run Code Online (Sandbox Code Playgroud)

所以基本上我只是改变r'^orders/$'r'^order/$'的最后一次提交.但每当我这样做时{% url home %},我注意到服务器一直试图重定向到旧的路径/doors/orders/而不是/doors/order/.我还注意到重定向是一个301 Moved Permanently.

于是,我就添加permenant=FalseRedirectView并重新启动服务器.但它仍然/doors/orders/和重定向仍然是301(它应该是302)!

为什么我没有RedirectView重定向到更新的URL?


服务器信息

在Gentoo Linux上使用mod_wsgi和Django 1.4运行Apache 2.2.21

hob*_*es3 15

原来,301重定向缓存在浏览器上!

所以我清除了浏览器的缓存,一切正常.这是很难知道去哪里寻找错误时,我真的不明白之间的差别301,并302说好.我也意识到,因为我RedirectView基本上是一个占位符,直到我写一个真正的家庭模板.我应该permanent=False用来永远创造一个302.有关详细信息,请查看文档.