Django - Display ImageField

unixeO picture unixeO · Jul 25, 2013 · Viewed 29.7k times · Source

i just start to use django and i haven't found a lot of info on how to display an imageField, so i made this:

models.py

class Car(models.Model):
    name = models.CharField(max_length=255)
    price = models.DecimalField(max_digits=5, decimal_places=2)
    photo = models.ImageField(upload_to='site_media')

views.py

def image(request):
    carx = Car()
    variables = RequestContext(request,{
        'carx':carx
    })
    return render_to_response('image.html',variables)

image.html

{% extends "base.html" %}
{% block content %}
   <img src=carx />
{% endblock %}

I already save an image since terminal and i know is there, also if a do this in image.html:

{% block content %}
    {{ carx }}
{% endblock %}

The ouput is: Car object

Can anyone tell me where is my error?

Thanks a lot.

Answer

voithos picture voithos · Jul 25, 2013

An ImageField contains a url attribute, which you can use in your templates to render the proper HTML.

{% block content %}
    <img src="{{ carx.photo.url }}">
{% endblock %}