鉴于模型:
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)
[]
答案 0 :(得分:1)
我很确定您使用空字符串''
Person.objects.filter(resume='')
基础字段是docs for Filefield
提及的CharField()
。
Django将CharFields的空白存储为空字符串而不是NULL,因此过滤空字符串会让你没有简历的人。
答案 1 :(得分:0)
尝试
Person.objects.filter(resume__exact = None)
阅读此处的文件
http://docs.djangoproject.com/en/dev/ref/models/querysets/#id6