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