Django queryset 过滤空的 FileField?

49 投票
2 回答
12041 浏览
提问于 2025-04-16 10:27

我该如何在Django中对查询集进行过滤,以查找FileField字段中没有文件的空文件?

这个字段并不是空的,它里面有一个文件对象,但这个对象没有实际的文件。

2 个回答

8

另一种解决方案:

no_files = MyModel.objects.filter(foo__in=['',None])
80

我也遇到过这个问题,最后终于找到了解决办法!

no_files = MyModel.objects.filter(foo='')

之所以这样有效,是因为在内部,FileField 被当作一个本地文件路径存储在一个 CharField 中,而Django在数据库里把没有文件的情况存储为空字符串 ''

撰写回答