2

嘿,我正在使用MPTT从包含对话的模型中创建一些树状数据,我希望它们按“投票”字段排序。

该模型目前看起来像这样,非常基本。

class Thread(MPTTModel):
    message = models.CharField(max_length=100)
    parent = models.ForeignKey('self', null=True, blank=True, related_name='children')
    votes = models.IntegerField()

    class MPTTMeta:
        order_insertion_by=['votes']

如您所见,我们有一个消息字段,以及链接到 Thread 模型的父 FK 和一个投票。

在我看来,我有这个

threads = Thread.tree.all()
    data = {
        'threads':threads
    }
    return render_to_response("show.html",data )

然后在我的模板中

{% load mptt_tags %}

<ul class="root">
        {% recursetree d %}
            <li>
                {{ node.title }}
                {% if not node.is_leaf_node %}
                    <ul class="children">
                        {{ children }}
                    </ul>
                {% endif %}
            </li>
        {% endrecursetree %}
</ul>

但是,输出的列表是所有线程的列表。它们都没有联系在一起。

有任何想法吗?

4

1 回答 1

2
{% load mptt_tags %}
<ul class="root">
    {% recursetree nodes %}            
        <li>
            {{ node.message }}
            {% if not node.is_leaf_node %}
                <ul class="children">
                    {{ children }}
                </ul>
            {% endif %}
        </li>
    {% endrecursetree %}
</ul>

在我的观点中:

threads = Thread.tree.all()  
data = {  
    'nodes':threads  
}
return render_to_response("show.html",data )

在 html 页面中,我看到按字母顺序排列的节点树并带有缩进。

于 2010-12-16T15:39:19.003 回答