How can I get the full/absolute URL (e.g. https://example.com/some/path
) in Django without the Sites module? That’s just silly… I shouldn’t need to query my DB to snag the URL!
I want to use it with reverse()
.
29 Answers
Use handy request.build_absolute_uri() method on request, pass it the relative url and it’ll give you full one.
By default, the absolute URL for request.get_full_path()
is returned, but you can pass it a relative URL as the first argument to convert it to an absolute URL.
>>> request.build_absolute_uri()
'https://example.com/music/bands/the_beatles/?print=true'
>>> request.build_absolute_uri('/bands/?print=true')
'https://example.com/bands/?print=true'