Django注释计数不适用于多对多表

Django注释计数不适用于多对多表,django,count,many-to-many,annotate,Django,Count,Many To Many,Annotate,我有一个Django模型的层次结构(简化为要点): 项目/模型.py 类项目(models.Model): @财产 def材料(自身): return=m2m\u Assembly\u Components.objects.filter(Assembly\u room\u project=self).聚合(count=models.count('component')) 教室(模型.模型): 项目=模型。外键(“项目”,相关_name=“房间”) 类程序集(models.Model): 房间=型

我有一个Django模型的层次结构(简化为要点):

项目/模型.py

类项目(models.Model):
@财产
def材料(自身):
return=m2m\u Assembly\u Components.objects.filter(Assembly\u room\u project=self).聚合(count=models.count('component'))
教室(模型.模型):
项目=模型。外键(“项目”,相关_name=“房间”)
类程序集(models.Model):
房间=型号。外键(“房间”,相关的_name=“组件”)
components=models.ManyToManyField(“material.Component”,通过=“m2m\U Assembly\U components”)
m2m类组件组件(型号):
组件=型号。外键(“材料。组件”)
组件=型号。外键(“组件”)
材料/型号.py

类组件(models.Model):
name=models.CharField(最大长度=200)
我想获得与某个项目相关的m2m_Assembly_组件中所有组件的列表及其编号

类似于“项目1有7个A型组件和3个B型组件”

为此,我在项目类中使用材质属性,但我只得到一个m2m\U组件对象列表和一个计数值1

谁能告诉我我做错了什么

编辑07.042016 12:11

我让它工作了,但不是很好:

@属性
def材料(自身):
return=m2m\u Assembly\u Components.objects.filter(Assembly\u room\u project=self)。值('component\u name','component\u articlenumber')。注释(count=models.count('component'))
不幸的是,这给了我一个dict而不是对象,我必须定义我需要的所有值:

{'component_uuuarticleum':'021123','count':17,'component_uuuname':'abdeckramen,E2,蒽醌,1-fach'}

组件的
类型是什么?它是
名称
字段吗?您是指用于计数功能的“组件”!?
组件的
类型是什么?它是
名称
字段吗?您是指用于计数功能的“组件”!?