Accessing image dimensions on an ImageField in a Django template?

20,890

Solution 1

See the documentation for ImageField.

In addition to the special attributes that are available for FileField, an ImageField also has height and width attributes.

So just do the following:

<img src="{{ image.url }}" width="{{ image.width }}" height="{{ image.height }}"/>

Solution 2

In my case, for the width and height fields to work, I need to set the width_field and height_field of the ImageField

E.g.

class Product(models.Model):
    image = models.ImageField(width_field='image_width', height_field='image_height')
    image_width = models.IntegerField()
    image_height = models.IntegerField()
Share:
20,890

Related videos on Youtube

olegmil
Author by

olegmil

Updated on August 09, 2020

Comments

  • olegmil
    olegmil over 3 years

    I have ImageField in my model and I'm able to display the image in a template. However, how do I retrieve the image's height and width?

  • bonbon.langes
    bonbon.langes over 10 years
    hmmm.. it doesn't work on my end. {% with post.postimage_set.all as image %} <a href="{{ image.get_image_url }}"><img src="{{ image.get_image_url }}" title="{{ image.title }}" alt="{{ alt }}" width="{{ image.width }}" height="{{ image.height }}" /></a> {% endwith %}

Related