2010-12-15 26 views
2

我試圖讓'/'重定向到'/first-page'其中'/first-page'是一個內置的平板頁與塞第一頁Django的重定向「/」的平面頁

我正在尋找類似

(r'^/', 'redirect_to', {'url': '/flat-page'}), 
+0

可能重複的[Python + Django頁面重定向](http://stackoverflow.com/questions/523356/python-django-page-redirect) – 2010-12-15 23:57:00

+0

@jleedev:它是重複的,但「最好」的答案有隨後引入了'redirect_to'通用視圖。 – 2010-12-16 00:20:36

+0

@Chris,'redirect_to'在Django 1.0中(http://docs.djangoproject.com/en/1.0/ref/generic-views/#django-views-generic-simple-redirect-to)投票答覆可能的重複。 TSSK。讓我們upvote在那裏的'redirect_to'答案來解決這個嘲諷http://stackoverflow.com/questions/523356/python-django-page-redirect/3841632#3841632;) – Day 2010-12-16 00:32:19

回答

3

使用Django的通用視圖

urlpatterns = patterns('django.views.generic.simple', 
    ('^$', 'redirect_to', {'url': '/first-page'}), 
) 
urlpatterns += patterns('myProject.myApp', 
    ... 
) 

urlpatterns = patterns('', 
    ('^$', 'django.views.generic.simple.redirect_to', {'url': '/first-page'}), 
    ... 
) 

the docs更多的信息和例子。

請注意您的網址是否與您的網址匹配,您擁有的網址將匹配以/開頭的任何內容。像example.com //任何東西,請注意雙斜槓。

+0

用於'django.views.generic.simple.redirect_to'的+1,用於''^ $''的+1而不是''^ /''這將匹配所有內容,因此需要最後一次並且會打破404s。 – 2010-12-16 00:18:02

+0

謝謝@Chris,我說的是'r'^ /''會匹配example.com //任何東西而不是'example.com/anything'嗎?我沒有測試過。 - 更新:測試和正確。 – Jake 2010-12-16 00:22:33

+0

對不起,沒有正確思考,你是對的。 – 2010-12-16 01:20:51

1

在url的視圖中,您可以使用HttpResponseRedirect

from django.http import HttpResponseRedirect 

def rootview(request): 
    return HttpResponseRedirect('/flat-page') 
1

使用HttpResponsePermanentRedirect

from django.http import HttpResponsePermanentRedirect 
# ... 
(r'^$', 'redirect_to', lambda request: HttpResponsePermanentRedirect('/flat-page')), 
+1

我不認爲這將甚至工作。如果你堅持使用lambda函數,可以這樣做:'(r'^ $',lambda request:HttpResponsePermanentRedirect('/ flat-page'))' – Jake 2010-12-16 00:18:13

+0

你是對的。我從問題中拿出了代碼,我認爲這是正確的。 – aligf 2010-12-16 00:23:45