在Django+中反转多对多字段;数一数

在Django+中反转多对多字段;数一数,django,list,count,django-templates,Django,List,Count,Django Templates,我正在想办法解决这个问题 class Item(models.Model): type = models.ForeignKey(Type) name = models.CharField(max_lenght = 10) ... class List(models.Model): items = models.ManyToManyField(Item) ... 我想计算一个项目在另一个列表中出现的数量,并显示在模板上 看法 模板 {%用于列表%中的di

我正在想办法解决这个问题

class Item(models.Model):
    type = models.ForeignKey(Type)
    name = models.CharField(max_lenght = 10)
    ...

class List(models.Model):
    items = models.ManyToManyField(Item)
    ...
我想计算一个项目在另一个列表中出现的数量,并显示在模板上

看法 模板
{%用于列表%中的dia}
{{item.type.description}}
{{item.name}
{{计算项目在其他列表上出现的次数}
{%endfor%}
这似乎很容易,但我还不能实现

如果有人有胶水粘在我身上,请帮帮我


提前感谢。

如果您使用的是django 1.3+,请使用


此queryset中的每个列表实例都有一个item_count属性,您可以在模板中显示该属性。您将在文档中找到更多示例。

我想要的方法是,简单的方法是在类项上创建一个方法

def get_num_item(self):
    return Lista.objects.filter(item__id = self.id).count()
我很惭愧

谢谢,谢夫

    {% for dia in list %}   
            <div class="span4" >
                <div>
                    <h6 style="color: #9937d8">{{item.type.description}}</h6>
                    <small style="color: #b2e300">{{ item.name }}</small>
                    <small style="color: #b2e300">{{COUNT HOW MANY TIMES THE ITEM APPEAR ON OTHER LISTS}}</small>

                </div>  
    {% endfor %}
from django.db.models import Count    
queryset = List.objects.annotate(item_count=Count('item'))
def get_num_item(self):
    return Lista.objects.filter(item__id = self.id).count()