6

我有一张如下表:

表名:示例

values
1
1
2

2
3

3

值列表包含上述值。当我在able 表上编写一个不同的查询时,我得到 1 2 3 和一个空的 '' 值。

我想摆脱null价值,因为它在我的程序中造成了一些问题。我写的查询是:

example.objects.values_list('values',flat = True).distinct()

有没有办法过滤掉那个空值

4

4 回答 4

8

试试这个:

from django.db.models import Q
example.objects.exclude(
      Q(values__isnull=True)|Q(values='')
    ).values_list('values', flat=True).distinct()
于 2012-09-04T12:57:00.547 回答
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()

复杂的查找在这里...

于 2012-09-04T12:42:29.717 回答
1

您可以尝试先过滤掉空值,然后链接您的过滤器,如下所示

example.objects.exclude(values=None).values_list('values',flat = True).distinct()
于 2012-09-04T11:56:36.527 回答
0

尝试使用is_null字段查找:

example.objects.filter(values__isnull=False).values_list('values',flat = True).distinct()

所以之前的查询字符串.values_list(...将返回example表中的所有记录,其中values字段不为空。

正如@BurhanKhalid所注意到的,这种尝试只有在您的values字段可以为 NULL时才有效

于 2012-09-04T12:14:17.400 回答