使用values_list检索的空值

时间:2013-05-30 11:12:59

标签: python django

我根据country_name表的一列(country)从数据库中检索了这个国家/地区列表:

list_countries = Country.objects.values_list('country_name', flat=True).distinct()

结果是这样的:

[u'', u'China', u'France', u'Germany', ...]

数据库中的某些值为空。如何删除检索到的空白,以便我检索到的结果只是country_name not null(cf country_name != '')?

3 个答案:

答案 0 :(得分:5)

您可以使用Q对象,

from django.db.models import Q
list_countries = Country.objects.filter(~Q(country_name='')).values_list('country_name', flat=True).distinct()

答案 1 :(得分:1)

您可以使用列表推导来删除零长度条目。

list_countries = [country for country in list_countries if len(country) > 0]

答案 2 :(得分:1)

我同意Adem的回答,除了一个改变。

from django.db.models import Q
list_countries = Country.objects.filter(~Q(country_name='')).distinct().values_list('country_name', flat=True)

这比Adem的回答略胜一筹。