1

使用django-mppt我想浏览我的类别层次结构,显示与它的任何子项中的当前类别相关的对象数量。

drill_down_for_node与所示示例非常相似,但仅限于当前节点的子节点...

最佳的将是

{% recursetree obj.get_children cumulative count model.Foreignkey.category in o_count%}
<li>
    <h2><a href="{{ node.get_absolute_url }}">{{ node }}</a></h2>
    {% if not node.is_leaf_node %}
    <ul class="children">
        <a href="{{ children.get_absolute_url }}">{{ children }} ({{o_count}})</a>
    </ul>
    {% endif %}
</li>
{% endrecursetree %}

任何指针?

4

1 回答 1

2

在 TreeManager 上找到了一个函数:

https://github.com/django-mptt/django-mptt/blob/master/mptt/managers.py#L250

将计数添加到视图中的查询集:

context['qs_with_related_count'] = model1.objects.add_related_count(
                                          obj.get_children(),
                                          model2, 
                                          'category',
                                          'o_count',
                                          True
                                   )

在模板中:

{% recursetree qs_with_related_count %}
    <li>
        <h2><a href="{{ node.get_absolute_url }}">{{ node }} ({{ node.o_count }})</a></h2>
        {% if not node.is_leaf_node %}
           <ul class="children">
               {{ children }}
           </ul>
        {% endif %}
    </li>
 {% endrecursetree %}

不幸的是,我试图使用ManyToManyFieldas rel_field

https://github.com/django-mptt/django-mptt/issues/90

但看起来你很幸运('类别'而不是'类别'):)

于 2013-01-21T23:13:27.350 回答