Django总计数
我有Django中的模型、视图和模板,希望显示类别的总数Django总计数,django,count,django-templates,Django,Count,Django Templates,我有Django中的模型、视图和模板,希望显示类别的总数 class Entry (models.Model): title = models.CharField(max_length=200) category = models.ForeignKey('entry.Category') class Category(models.Model): title = models.CharField(max_length=100) parent = models.F
class Entry (models.Model):
title = models.CharField(max_length=200)
category = models.ForeignKey('entry.Category')
class Category(models.Model):
title = models.CharField(max_length=100)
parent = models.ForeignKey('self', blank=True, null=True, related_name='children')
def category(request):
category = Category.objects.all()
return render_to_response('category.html', locals(), context_instance=RequestContext(request))
<ul>
{% for category in category %}
<li><a href="{{ category.slug }}">{{ category.title }}</a> ({{ category.entry_set.all.count }})</li>
{% endfor %}
</ul>
类条目(models.Model):
title=models.CharField(最大长度=200)
category=models.ForeignKey('entry.category')
类别(models.Model):
title=models.CharField(最大长度=100)
parent=models.ForeignKey('self',blank=True,null=True,related_name='children')
def类别(请求):
category=category.objects.all()
返回render_to_响应('category.html',locals(),context_实例=RequestContext(request))
{类别%中的类别为%1}
- ({category.entry_set.all.count}})
{%endfor%}
电流输出:
-类别1(0)
--第1(3)小类
--次级类别2(6)
欲望输出是这样的:
-第1类(9)
--第1(3)小类
--次级类别2(6)
如何获得该输出?使用
category.entry\u set.count
而不是category.entry\u set.all.count
此外,如果使用相同的变量名类别
引用多个值,则可能需要更改该变量名
将模板更新为:
<ul>
{% for cat in category %}
<li><a href="{{ cat.slug }}">{{ cat.title }}</a> ({{ cat.entry_set.count }})</li>
{% endfor %}
</ul>
{%类别中的cat为%}
- ({{cat.entry_set.count}})
{%endfor%}
使用Django MPTT解决,并按如下方式更新我的视图和模板:
views.py:
def category(request):
category = Category.tree.add_related_count(Category.objects.all(), Entry, 'category', 'cat_count', cumulative=True)
return render_to_response('category.html', locals(), context_instance=RequestContext(request))
category.html:
{% recursetree category %}
<ul>
<a href="{{ node.slug }}">{{ node.title }} ({{ node.cat_count }})</a>
{% if not node.is_leaf_node %}
<li class="children">
{{ children }}
</li>
{% endif %}
</ul>
{% endrecursetree %}
{%recursetree类别%}
{%如果不是node.is_leaf_node%}
-
{{儿童}
{%endif%}
{%endrecursetree%}
谢谢,但我还是得零分value@pije,您有合适的数据吗?不确定django中的合适数据是什么,因为我以前是PHP开发人员。@pije,使用django python shell,看看类似代码的值是什么。