在Django(FileField)中按文件大小筛选

5

我有一个模型:

class MyModel(models.Model):
    file = models.FileField(verbose_name='File', upload_to="files/")

我可以获取文件大小(以字节为单位):

size = my_model_instance.file.size

如何在Django中按文件大小筛选?类似这样的:
MyModel.object.filter(file.size__lt=128)
1个回答

8
你无法直接获取文件大小,model_instance.file.size 实际上会打开关联的文件并从磁盘获取大小。在数据库中保存的是文件路径而不是文件大小。
如果想要通过文件大小进行过滤,你需要将大小作为模型的一个额外字段保存到数据库中。可以在保存模型时自动填充该字段。

谢谢!我会在模型中保存文件大小作为另一个字段。 - ncopiy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接