【问题标题】:Filter by file size in Django (FileField)在 Django (FileField) 中按文件大小过滤
【发布时间】:2018-10-23 16:13:29
【问题描述】:

我有一个模型:

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)

【问题讨论】:

    标签: django django-orm filefield


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!我会将文件大小保存为模型中的另一个字段。
    猜你喜欢
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多