Changeset - 87961c6cee48
[Not reviewed]
0 0 1
Brett Smith (brett) - 4 years ago 2017-11-07 15:13:48
brett@sfconservancy.org
templatetags: Add fill_url.

This gives templates an easy way to generate full URLs using host_url.
1 file changed with 20 insertions and 0 deletions:
0 comments (0 inline, 0 general)
www/conservancy/apps/news/templatetags/fill_url.py
Show inline comments
 
new file 100644
 
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)
 
    )
0 comments (0 inline, 0 general)