【问题标题】:Django's HttpResponseRedirect() + reverse() truncating port number in URLDjango HttpResponseRedirect() + reverse() 截断 URL 中的端口号
【发布时间】:2010-09-06 22:49:41
【问题描述】:

我在端口 8000 上运行本地开发服务器,因为我的 ISP 阻止了端口 80。问题在于使用时:

return HttpResponseRedirect(reverse('foobar'))

Django(出于某种原因)从 URL 中截断端口 - 但在模板标签的上下文中解析它没有问题,例如:{% url foobar %}。

由于我试图减少部署到生产服务器所需的手动更改次数,因此我想避免对 url 进行硬编码。

【问题讨论】:

    标签: django django-urls


    【解决方案1】:

    reverse(){% url %} 不考虑域和端口——它们只是在路径上操作。所以reverse('foobar') 的结果是你的urls.py 中匹配'foobar' 的元素——例如/foo/bar/

    所以一定是别的东西在改变你的 URL——也许是你的浏览器。

    【讨论】:

      【解决方案2】:

      此时 reverse('foobar') 的结果是什么?

      在站点表中输入的站点的主机:端口是否正确(如果启用了管理员,管理员页面通常为http://localhost:8000/admin/sites/site/

      你可以使用 curl -i 从服务器获取完整的响应吗?

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-25
      • 2014-02-02
      • 2020-06-27
      • 1970-01-01
      • 2021-08-23
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      相关资源
      最近更新 更多