FileField 中的 django 图像分辨率

django image resolution in FileField

我有一个class

class MyFiles(models.Model):
    my_file = models.FileField(upload_to=get_upload_filename)

    def __str__(self):
        return self.my_file.url

在我看来,我有这样的查询:

read_file = MyFiles.objects.all()

在我的模板中,我想显示他们的分辨率。我在某处看到我可以做到 {{read_file.height}} {{read_file.width}}

但它现在对我有用..我怎样才能使用 FileField 获得图像的分辨率?

首先,你不能在当前模型中使用{{read_file.height}}{{read_file.width}},因为read_file是一个查询集而不是模型的实例!

其次:宽度和高度仅在ImageField中可用,因此正确的解决方案是:

  1. 用 ImageField 替换 FileField
  2. 在您的模板中遍历 read_file 或使用 get in view 仅获取一个对象
  3. 在字段上使用 widthheight。示例模板代码:

    {% for file in read_file %}
        {{ file.my_file.width }}x{{ file.my_file.height }}
    {% endfor %}
    

    这会给你正确的结果。