django - 在 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)
解决方案
你不能。model_instance.file.size
实际上打开关联的文件并从磁盘中获取大小。唯一保存在数据库中的是文件的路径。
如果您希望能够按文件大小进行过滤,则必须将大小保存在数据库中作为模型的额外字段。您可以在保存模型时自动填充该字段。
推荐阅读
- php - Wordpress 插件开发 admin-ajax.php 400(错误请求)
- azure - 无法通过自定义子域访问 CDN 端点
- angular - Angular 库路由
- sql - SQL Server - 清理巨大的表。插入我们想要保留的数据并截断旧表
- python - 在 Word [docx] [Python 3.8.2] 中设置表格单元格的背景颜色
- mysql - SQL查询删除顶行和第一列
- html - 使用 phantom-html-to-pdf 转换的 PDF 中的超链接不起作用
- angular - 单击按钮角度时如何更改组件
- node.js - Laravel 通过 redis 向节点服务器广播事件
- c# - C# 控制台无法将谷歌表格数据读入程序中的列表