"""Jinja2-ports of many of Django's default filters. TODO: Most of the filters in here need to be updated for autoescaping. TAKED FROM COFFIN: https://github.com/cdleary/coffin (and adapted for djinja library) """ from djinja.template.base import Library from jinja2.runtime import Undefined from django.utils.safestring import mark_safe from django.utils.encoding import force_unicode from django.conf import settings register = Library() @register.filter def url(view_name, *args, **kwargs): url = '' from django.core.urlresolvers import reverse, NoReverseMatch try: url = reverse(view_name, args=args, kwargs=kwargs) except NoReverseMatch: projectname = settings.SETTINGS_MODULE.split('.')[0] try: url = reverse(projectname + '.' + view_name, args=args, kwargs=kwargs) except NoReverseMatch: raise