|Reported by:||anonymous||Owned by:||tcsorrel|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
There is a problem during absurl processing:
absurl = obj.get_absolute_url() if absurl.startswith('http://') or absurl.startswith('https://'): return http.HttpResponseRedirect(absurl) else: ...
So, if get_absolute_url returns 'sub.example.com/entry.html' shortcut view will return something like 'http://example.com//sub.example.com/entry.html'
This problem was founded with help of django_hosts application. Author of this app decided to return urls without 'http:' or 'https:' prefix. Here is the explanation:
The double slash at the beginning of the href is an easy way to not have to worry about which scheme (http or https) is used. Your browser will automatically choose the currently used scheme. If you're on https://mysite.com/ a link with an href of mysite.com/about/ would actually point to https://mysite.com/about/. For more information see the The protocol-relative URL article by Paul Irish or the appropriate section in RFC 3986.
I think the better way is urlparse lib using to decide on the url kind.
Change History (6)
comment:1 Changed 5 years ago by
|Patch needs improvement:||unset|
|Triage Stage:||Unreviewed → Accepted|
comment:4 Changed 3 years ago by
|Owner:||changed from nobody to tcsorrel|
|Status:||new → assigned|