2014-10-26 56 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()