1
我想從/
重定向到/post/
,但在試用測試中,我創建了某種類型的循環引用,而不是去/post/
,然後顯示我的帖子索引,它轉到/post/post/post/...
。在這個測試中,我做了的網址 - 也包括,所以這裏是我的兩個網址文件。從根目錄重定向到應用程序出錯
項目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')
)
UPDATE:
問題是個在Firefox 26(可能還有其他瀏覽器?)緩存301(Django的RedirectView使用的默認重定向代碼?)HTTP響應,如StackOverflow文章所述。
爲了解決這個問題,你必須清除緩存(也許站點首選項)和總是添加permanent=False
到您的重定向,所以它使用302(非緩存),而不是301(緩存)響應。您可以將其更改爲在您使用重定向(即部署到生產環境)時死亡的默認行爲。
它仍然不起作用。這是一個屏幕截圖:http://imgur.com/bANPEpy – Alxe
我在'Post \ urls.py'中將'/ post /'改爲'/ post/index',Django仍然重定向到'/ post/post/post/post/...'所以這個問題可能與RedirectView – Alxe
你是否重定向到'/'PostIndexView'''中的任何地方? – schillingt