2010-09-06 74 views
2

端口號,我是因爲我的ISP阻止端口80的問題使用的時候在端口8000上運行我的本地開發服務器:Django的HttpResponseRedirect()+反向()截斷在URL

return HttpResponseRedirect(reverse('foobar')) 

Django的(出於某種原因)從URL截斷端口 - 但在模板標記的上下文中解析它沒有問題,例如:{%url foobar%}。

因爲我試圖減少部署到我們的生產服務器所需的手動更改的數量,所以我想避免對url進行硬編碼。

回答

0

什麼是反向('foobar')評估到那時?

是正確的主機:該網站的端口在站點表中輸入(Admin頁面通常http://localhost:8000/admin/sites/site/是如果啓用管理員)

您可以使用捲曲-i來從服務器獲取完整的迴應?

+0

啊 - 這可能是值得一提的 - 它解決了http://staging.devdomain.com/foobar/所以它的解決方法是正確的 - 除了它應該是http://staging.devdomain.com:8000/foobar/ – NFicano 2010-09-07 02:05:52

+0

哦,我沒有使用Django管理員 - 因此它被設置爲默認的example.com – NFicano 2010-09-07 02:06:36

1

reverse(){% url %}不考慮域和端口 - 它們只是在路徑上運行。因此reverse('foobar')的結果是urls.py中與「foobar」匹配的元素 - 例如/foo/bar/

因此,其他事情必須改變你的網址 - 也許你的瀏覽器。