我怎么能得到完整/绝对的URL(例如https://example.com/some/path)在Django没有网站模块?这太愚蠢了……我不需要查询我的数据库来抓取URL!
我想使用reverse()。
我怎么能得到完整/绝对的URL(例如https://example.com/some/path)在Django没有网站模块?这太愚蠢了……我不需要查询我的数据库来抓取URL!
我想使用reverse()。
当前回答
Request.get_host()将为您提供域。
其他回答
如果你想使用reverse(),你可以这样做:request。build_absolute_uri(反向(view_name, args = (obj。pk,)))
我知道这是一个老问题。但我认为人们仍然经常遇到这种情况。
有几个库可以补充Django的默认功能。我试过一些。当反向引用绝对url时,我喜欢以下库:
https://github.com/fusionbox/django-absoluteuri
另一个我喜欢的是,因为你可以很容易地把域、协议和路径放在一起:
https://github.com/RRMoelker/django-full-url
这个库允许你在模板中简单地写你想要的东西,例如:
{{url_parts.domain}}
Request.get_host()将为您提供域。
我遇到这个线程是因为我正在寻找为成功页面构建一个绝对URI。request.build_absolute_uri()给了我当前视图的URI,但为了获得我的成功视图的URI,我使用了以下....
request.build_absolute_uri(反向(success_view_name))
你可以试试"request.get_full_path()"