Django查询找出somefilefield为None的模型实例?

1 投票
2 回答
1727 浏览
提问于 2025-04-16 15:47

给定这个模型:

class Person(models.Model):
    name = models.CharField(max_length=200)
    resume = models.FileField(upload_to='resumes/', blank=True, null=True)

我通过以下方式创建了一些人:

Person.objects.create(name='Brad')
Person.objects.create(name='Tony')

我该如何使用ORM写一个查询,来找出那些没有resume的人。我尝试了以下几种方法,但都没有得到想要的结果:

>>> Person.objects.filter(resume=None)
[]
>>> Person.objects.filter(resume__exact=None)
[]
>>> Person.objects.filter(resume__isnull=True)
[]

2 个回答

0

尝试一下

Person.objects.filter(resume__exact = None)

在这里阅读文档

http://docs.djangoproject.com/en/dev/ref/models/querysets/#id6

1

我很确定你是通过空字符串 '' 来过滤的。

Person.objects.filter(resume='')

底层的字段是一个 CharField(),就像 Filefield的文档中提到的那样。

Django 对于 CharFields 是用空字符串来表示空白,而不是用 NULL,所以当你过滤空字符串时,会得到没有简历的人员。

关于 Null 的模型字段参考

撰写回答