首页 > 解决方案 > 在 Django (FileField) 中按文件大小过滤

问题描述

我有一个模型:

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)

标签: djangodjango-ormfilefield

解决方案


你不能。model_instance.file.size实际上打开关联的文件并从磁盘中获取大小。唯一保存在数据库中的是文件的路径。

如果您希望能够按文件大小进行过滤,则必须将大小保存在数据库中作为模型的额外字段。您可以在保存模型时自动填充该字段。


推荐阅读