我有一张如下表:
表名:示例
values
1
1
2
2
3
3
值列表包含上述值。当我在able 表上编写一个不同的查询时,我得到 1 2 3 和一个空的 '' 值。
我想摆脱null
价值,因为它在我的程序中造成了一些问题。我写的查询是:
example.objects.values_list('values',flat = True).distinct()
有没有办法过滤掉那个空值
我有一张如下表:
表名:示例
values
1
1
2
2
3
3
值列表包含上述值。当我在able 表上编写一个不同的查询时,我得到 1 2 3 和一个空的 '' 值。
我想摆脱null
价值,因为它在我的程序中造成了一些问题。我写的查询是:
example.objects.values_list('values',flat = True).distinct()
有没有办法过滤掉那个空值
试试这个:
from django.db.models import Q
example.objects.exclude(
Q(values__isnull=True)|Q(values='')
).values_list('values', flat=True).distinct()
正如提到的其他答案,如果您有null
/empty string
困惑。您可以使用复杂的查找参数排除两者,例如:
from django.db.models import Q
example.objects.exclude(Q(values__isnull=True)|Q(values='')).values_list('values',flat = True).distinct()
复杂的查找在这里...
您可以尝试先过滤掉空值,然后链接您的过滤器,如下所示
example.objects.exclude(values=None).values_list('values',flat = True).distinct()
尝试使用is_null
字段查找:
example.objects.filter(values__isnull=False).values_list('values',flat = True).distinct()
所以之前的查询字符串.values_list(...
将返回example
表中的所有记录,其中values
字段不为空。
正如@BurhanKhalid所注意到的,这种尝试只有在您的values
字段可以为 NULL时才有效