2009-01-03 86 views
18

最近幾天,我們在another question上討論了以REST方式管理隨機性的最佳方法;今天我在Django中發揮了一些想法,只是發現沒有簡單的標準方法來返回303響應(也沒有300響應),也就是說,內部似乎沒有HttpResponseSeeOther django.HTTP或在其他地方。如何在Django中生成303 Http響應?

你知道有什麼方法可以實現嗎?

回答

25

你可以只覆蓋HttpResponse對象,像其他迴應做:

class HttpResponseSeeOther(HttpResponseRedirect): 
    status_code = 303 

return HttpResponseSeeOther('/other-url/') 
+5

您也可以將此文件作爲帶有修補程序的故障單進行歸檔。 – 2009-01-03 03:33:12

20

通用HttpResponse對象,您可以指定任何你想要的狀態代碼:

response = HttpResponse(content="", status=303) 
response["Location"] = "http://example.com/redirect/here/" 

如果你需要的東西可重複使用那麼傑拉爾德的答案肯定是有效的;只需創建您自己的HttpResponseSeeOther類。 Django僅爲幾個最常見的狀態代碼提供了這些特定的類。