我想在模板中显示用户已上传文件的大小。我已经看到file object具有属性大小,但是,因为我是Python和开发领域的新手,所以我一直很难理解如何使用它。
经过一些测试,我开发了此脚本( filesize ),以添加到模型的末尾,您可以通过该脚本上传文件:
class FileUpload(models.Model):
name = models.CharField(
max_length=50,
)
description = models.TextField(
max_length=200,
blank=True,
)
file = models.FileField(
upload_to='blog/%Y/%m/%d'
)
def __str__(self):
return self.name
@property
def filesize(self):
x = self.file.size
y = 512000
if x < y:
value = round(x/1000, 2)
ext = ' kb'
elif x < y*1000:
value = round(x/1000000, 2)
ext = ' Mb'
else:
value = round(x/1000000000, 2)
ext = ' Gb'
return str(value)+ext
现在调用文件的大小很简单。
我喜欢这个,因为我希望这对某人有用。我要问的是:有更好的解决方案吗?
答案 0 :(得分:0)
您可以使用python的os模块来获取上载文件的大小,例如os.path.getsize('Your file path')
答案 1 :(得分:0)
您可以使用以下自定义模板标签解决此问题:https://djangosnippets.org/snippets/1866/
然后在模板中像这样使用它:
{% load sizify %}
{{ yourFile.size|sizify }}
然后将以人类可读的格式(kb,Mb,Gb)显示文件大小