pythondjangoimagefield

Django - Display ImageField


I've just started 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 output is: Car object

Can anyone tell me where is my error?


Solution

  • 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 %}