templatetags: Add fill_url.
This gives templates an easy way to generate full URLs using host_url.
This commit is contained in:
parent
4758b8bcfd
commit
87961c6cee
1 changed files with 20 additions and 0 deletions
20
www/conservancy/apps/news/templatetags/fill_url.py
Normal file
20
www/conservancy/apps/news/templatetags/fill_url.py
Normal file
|
@ -0,0 +1,20 @@
|
|||
import urlparse
|
||||
|
||||
from django import template
|
||||
|
||||
register = template.Library()
|
||||
|
||||
@register.filter(name='fill_url')
|
||||
def fill_url(given_url, base_url):
|
||||
""""Fill out" missing pieces of one URL from another.
|
||||
|
||||
This function parses the given URL, and if it's missing any pieces
|
||||
(scheme, netloc, etc.), it fills those in from the base URL.
|
||||
Typical usage is "/URL/path"|fill_url:"https://hostname/"
|
||||
to generate "https://hostname/URL/path".
|
||||
"""
|
||||
given_parts = urlparse.urlsplit(given_url)
|
||||
base_parts = urlparse.urlsplit(base_url)
|
||||
return urlparse.urlunsplit(
|
||||
given_part or base_part for given_part, base_part in zip(given_parts, base_parts)
|
||||
)
|
Loading…
Reference in a new issue