2011-08-05 114 views
1
User 
    id 
    name 
Device 
    id 
    name 
    user-id 
    is_enabled 

我想選擇誰啓用
Django的聚合函數問題(計數= -number-)

  1. 至少有一臺設備的所有用戶。
  2. 只有2個設備啓用
  3. 所有設備上啓用

    請注意:啓用手段(Device.is_enabled = 1)

我知道我可以使用註釋來獲取設備的數量。但是,如何使用annonate讓用戶的數量誰正好有2功能的設備,

我目前正在與誰擁有至少一個已啓用的設備用戶的

User.objects.filter('device_set__is_enabled'=1) 

其捐贈名單瞎搞。 不知道接下來要做什麼。

回答

1
from django.db.models import Count 
User.objects.filter(device__is_enabled=1).annotate(
    device_count=Count('device')).filter(device_count=2) 

User.objects.exclude(device__is_enabled=0)