from django import template from django.utils.html import conditional_escape from django.utils.safestring import mark_safe register = template.Library() def quick_url(addressable_object, autoescape=None): if not hasattr(addressable_object, 'get_absolute_url'): return addressable_object if autoescape: esc = conditional_escape else: esc = lambda x: x result = '%s' % (esc(addressable_object.get_absolute_url()), esc(addressable_object)) return mark_safe(result) quick_url.needs_autoescape = True register.filter(quick_url)