I'm working on a Project where on certain places I need absolute URL's, in development mode I need the port 8000 added to any absolute url.
This piece of work, took me some time to figure out. Couldn't find something similiar on the net, it's based on Code from the Python urlparse module.
You can change the "settings.PORT" part to "settings.DEBUG == True" if you like, and so on.
META: replace parameters in URL, edit parameters in URL, edit URL, urlparse
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | def with_port(url_str):
""" Adds to an URL the port from the settings
useful for development
>>> with_port("http://localhost/ddd")
'http://localhost:8000/ddd'
>>> with_port("localhost/ddd")
'localhost/ddd'
"""
try:
port = settings.PORT
except AttributeError:
port = None
if port == 80:
port = None
url_split = urlsplit(url_str)
if port:
if not url_split.port and url_split.netloc:
scheme, netloc, url, query, fragment = url_split
netloc += ":%s" % port
url_split = SplitResult(scheme, netloc, url, query, fragment)
return url_split.geturl()
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 10 months, 1 week ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 10 months, 2 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 5 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 6 months ago
- Help text hyperlinks by sa2812 1 year, 6 months ago
Comments
Please login first before commenting.