2010-06-30 144 views
1

我正在做一個簡單的投票類,其中用戶可以投票或回答投票。我不希望此函數返回任何內容,因爲每個用戶的投票都是在他投票時創建的。 問題是,我的重定向或空的返回給我一個錯誤,如:該頁面沒有從瀏覽器正確重定向。django重定向工作不正常

我的代碼:

def vote_answer_down(request,id): 
    answer = Answer.objects.get(pk = id) 
    VoteDownAnswer.objects.create(answer = answer, voted_down_by = request.user) 

    return HttpResponseRedirect('.') #or return (without httpresponse),gives the same 

我在哪裏錯了? 謝謝!

+1

這是否發生在每個瀏覽器?我只能在IE6中記住這個問題,但在其他瀏覽器中,它工作正常。 Firefox中的 – yedpodtrzitko 2010-06-30 20:34:42

+0

- 我只安裝了它 – dana 2010-06-30 20:49:34

回答

1

http://docs.djangoproject.com/en/1.2/ref/request-response/#django.http.HttpResponseRedirect

構造函數一個參數 - 重定向到路徑。這可以是完全合格的網址(例如'http://www.yahoo.com/search/')或絕對網址(例如'/ search /')。請注意,這將返回HTTP狀態碼302.

是什麼讓你覺得'。'將工作?

通常使用reverse函數來提供所需的絕對URL。

http://docs.djangoproject.com/en/dev/topics/http/urls/#reverse

+0

如果我把www.google.com放在那裏,它也不工作。可能是因爲我在那裏創建投票對象?我只希望它保留在當前頁面 – dana 2010-06-30 20:52:06

+2

www.google.com也不起作用,但請嘗試爲您的主頁輸入「http://google.com/」或「/」 – jturnbull 2010-06-30 20:54:50

+1

@dana:「可能是因爲我在那裏創建投票對象?「不。返回對象是返回對象。如果它不會重定向,那麼您顯然在Django或mod_wsgi或Apache中執行了一些完全錯誤的操作。由於您沒有在技術堆棧上提供太多細節,我們只能猜測。 – 2010-06-30 20:56:56