I've managed to hack something simple which does what I wanted, maybe it'll be useful for someone. It's a template tag which replaces named groups with {{ name }}
sequences and takes the URL name as a single parameter.
import re
from django import template
from django.core.urlresolvers import get_resolver, get_urlconf
register = template.Library()
@register.simple_tag
def data_url(urlname):
urlconf = get_urlconf()
resolver = get_resolver(urlconf)
if urlname not in resolver.reverse_dict:
return ""
url = resolver.reverse_dict[urlname][0][-1][0]
url = re.sub(r'%\((.*?)\)s', '{{ \g<1> }}', url)
return "/%s" % url