2015-06-02 28 views
2

我有兩個模型組和用戶。在Django中註解中間模型

class User(models.Model): 
    name = models.CharField(max_length=50) 

class Group(models.Model): 
    users = models.ManyToManyField(User) 

用戶可以是在多個組和一組可以有多個用戶,所以我已在一組ManyToManyField。

我做了一箇中間模型存儲日期,當用戶添加到組

class User(models.Model): 
    name = models.CharField(max_length=50) 

class Group(models.Model): 
    users = models.ManyToManyField(User, through='GroupUser') 

class GroupUser(models.Model): 
    user = models.ForeignKey(User) 
    group = models.ForeignKey(Group) 

它的工作原理,因爲它應該。

但我有一個UserListView,我想在其中註釋每個用戶所屬的組數。

我已經在ListView中

def get_queryset(self): 
    return super(UserListView, self).get_queryset().annotate(num_groups=Count(?)) 

重寫get_queryset,但我不知道如何正確計算。

回答

0

我認爲這應該工作:

def get_queryset(self): 
    return super(UserListView, self).get_queryset().annotate(num_groups=Count('groupuser')) 
+0

遺憾的是它不 – Jamgreen

+0

你能不能給任何更多的細節? 您是否收到任何錯誤? super(UserListView,self).get_queryset()的輸出是什麼? – AndriJan