在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()