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
中可用,因此正确的解决方案是:
- 用 ImageField 替换 FileField
- 在您的模板中遍历
read_file
或使用 get in view 仅获取一个对象
在字段上使用 width
和 height
。示例模板代码:
{% for file in read_file %}
{{ file.my_file.width }}x{{ file.my_file.height }}
{% endfor %}
这会给你正确的结果。
我有一个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
中可用,因此正确的解决方案是:
- 用 ImageField 替换 FileField
- 在您的模板中遍历
read_file
或使用 get in view 仅获取一个对象 在字段上使用
width
和height
。示例模板代码:{% for file in read_file %} {{ file.my_file.width }}x{{ file.my_file.height }} {% endfor %}
这会给你正确的结果。