2

我根据表的一列 ( 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 != '') 检索结果?

4

3 回答 3

5

您可以使用Q对象,

from django.db.models import Q
list_countries = Country.objects.filter(~Q(country_name='')).values_list('country_name', flat=True).distinct()
于 2013-05-30T11:18:35.363 回答
1

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

list_countries = [country for country in list_countries if len(country) > 0]
于 2013-05-30T11:17:55.440 回答
1

除了一项更改外,我同意 Adem 的回答。

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

这将比 Adem 的答案略好。

于 2013-05-30T12:08:21.743 回答