我想从/
重定向到/post/
,但在试验中,我创建了一些循环引用,而不是转到/post/
然后显示我的帖子索引,它转到/post/post/post/...
。在这个测试中,我做了 urls - 包括,所以这里是我的两个 urls 文件。
项目 urls.py :
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls), name='admin'),
url(r'^post/', include('post.urls'), name='post'),
url(r'^/$', RedirectView.as_view(url='index'))
)
申请Post
urls.py :
urlpatterns = patterns(
'', # prefix
url(r'^update/(?P<id>[1-9][0-9]*)', PostUpdateView.as_view(), name='post_update'),
url(r'^delete/(?P<id>[1-9][0-9]*)', PostDeleteView.as_view(), name='post_delete'),
url(r'^detail/(?P<id>[1-9][0-9]*)', PostDetailView.as_view(), name='post_detail'),
url(r'^create/$', PostCreateView.as_view(), name='post_create'),
url(r'^list/$', PostListView.as_view(), name='post_list'),
url(r'^$', PostIndexView.as_view(), name='post_index')
)
问题是Firefox 26(可能还有其他浏览器?)缓存301(Django&#39; RedirectView使用的默认重定向代码?)HTTP响应,如此StackOverflow帖子中所述。
为了解决这个问题,您必须清除缓存(可能还有网站偏好设置)并始终将permanent=False
添加到重定向中,因此它使用302(不可缓存)而不是301(可缓存)响应。当您使用该重定向(即部署到生产环境)时,您可以将其更改为默认行为。
答案 0 :(得分:1)
在项目urls.py中使用它。它基本上只是对名称进行反转并使用该URL。 Docs
url(r'^$', RedirectView.as_view(pattern_name='post_index'))