2010-09-06 75 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/

因此,其他事情必须改变你的网址 - 也许你的浏览器。