如何在Django查询集中过滤空值?

时间:2018-03-22 07:46:56

标签: django django-queryset

我想在电子邮件列中过滤掉空值。

所以我尝试了这个:

users = User.objects.filter(email__iexact='')

但是,记录空值不会出现。

任何人都知道为什么会这样?

模型是:

class User(models.Model):
    email = models.EmailField(blank=True)

2 个答案:

答案 0 :(得分:2)

如果您要显示所有非空的电子邮件(过滤掉空),则可以使用

排除它们
users = User.objects.exclude(email__isnull=True)

如果您想获取所有具有空电子邮件值的列,请使用

users = User.objects.filter(email__isnull=True)

答案 1 :(得分:1)

声明模型:

class User(models.Model):
    email = models.EmailField(null=True)

然后:

users = User.objects.filter(email__isnull=True)

如果要排除空值,则:

users = User.objects.exclude(email__isnull=True)