2014-05-09 28 views
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')) 
) 

應用Posturls.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(緩存)響應。您可以將其更改爲在您使用重定向(即部署到生產環境)時死亡的默認行爲。

回答

1

改爲在您的項目urls.py中使用它。它基本上只是對該名稱進行反轉,並使用該URL。 Docs

url(r'^$', RedirectView.as_view(pattern_name='post_index')) 
+0

它仍然不起作用。這是一個屏幕截圖:http://imgur.com/bANPEpy – Alxe

+0

我在'Post \ urls.py'中將'/ post /'改爲'/ post/index',Django仍然重定向到'/ post/post/post/post/...'所以這個問題可能與RedirectView – Alxe

+0

你是否重定向到'/'PostIndexView'''中的任何地方? – schillingt