我想从/重定向到/post/,但是在一个试验测试中,我创建了某种循环引用,而不是去/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的RedirectView使用的默认重定向代码吗?)HTTP响应,如本StackOverflow文章中所解释的。
为了解决这个问题,您必须清除缓存(可能还有站点首选项)和总是将permanent=False添加到重定向,所以它使用302 (非缓存)而不是301 (缓存)响应。当你死了的时候,你可以改变它的默认行为--坚持使用重定向(即部署到生产环境)。
发布于 2014-05-09 11:34:20
在您的项目urls.py中使用此方法。基本上,它只需对名称进行反向操作,并使用该url。文档
url(r'^$', RedirectView.as_view(pattern_name='post_index'))https://stackoverflow.com/questions/23563431
复制相似问题