2014-10-26 79 views
1

我有以下查询:得到一个字段是否为空或不是

territories = Territory.objects.values_list(
       'territory_id', 'territory__name', 'hd_retail_price__isnull' 
      ).order_by('territory__name').distinct() 

然而,Django的提出了一个错误,hd_retail_price__isnull不是一个字段(它不是)。有没有办法得到一个布尔值是否该字段为空或不是?否则我的distinct将无法​​正常工作。

我想有:

SELECT territory_id, territory_name, ISNULL(hd_retail_price) FROM territory 

回答

1

使用.extra

territories = Territory.objects.extra(
    select={'has_hd': "ISNULL(hd_retail_price)"} 
).values_list(
    'territory_id', 'territory__name', 'has_hd' 
).order_by('territory__name').distinct() 
相关问题