Tuesday, 6 August 2013

Django build_absolute_uri throwing NoReverseMatch error

Django build_absolute_uri throwing NoReverseMatch error

Have tried numerous related solutions previously posted here to no effect.
I'm obviously missing something. I am using Django 1.4. I have a process
that generates a random number of jpeg files. I am trying to create a
combination of views/template/templatetags that will let me dynamically
display the images. No models are involved. Used the idea of a templatetag
filter from Lois Di Qual
The settings.py file has the proper TEMPLATE_CONTEXT_PROCESSORS installed.
Thanks in advance.
This is what I have:
Template:
{% load mytemplatetags %}
{% for fn in jpg_names %}
{{ fn|absolute_img_uri:request }}
{% endfor %}
Template Tags
from django import template
from django.template.loader import render_to_string
from django.core.urlresolvers import reverse
register = template.Library()
'''
Usage: {{ fn|absolute_media_url:request }}
'''
@register.filter
def absolute_img_uri(fn, request):
return request.build_absolute_uri(reverse("returnImage",
kwargs={'fn':fn}))
View:
def returnImage(request,**kwargs):
path = "/opt/local/var/media/facstool/"
fn = kwargs['fn']
img = open(str(path)+fn,'rb').read()
response = HttpResponse(img,mimetype='image/jpeg')
return response
Urls:
import ri.tools.views as rv
urlpatterns = patterns('ri.tools.views',
url(r'^$', 'index', name="index"),
url(r'defineParameters','defineParameters',name='defineParameters'),
url(r'downloadcsv','downloadcsv',name='downloadcsv'),
url(r'downloadpdf','downloadpdf',name='downloadpdf'),
url(r'downloadZipFile','downloadZipFile',name='downloadZipFile'),
url(r'returnImage/(?P<fn>\.*)',rv.returnImage,name='fn'),)

No comments:

Post a Comment