Django查询找出somefilefield为None的模型实例?
给定这个模型:
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,所以当你过滤空字符串时,会得到没有简历的人员。