0

我使用了 MongoDB、Flask 和 Jinja2。但我无法在模板中获得树结构。

MongoDB:

>db.items.find()
{u'_id': ObjectId('51fe1dc57f2b0b1720688dbd'), u'name': u'bus1', u'parent': 0}
{u'_id': ObjectId('51fe1dd87f2b0b1720688dbe'), u'name': u'dev1', u'parent': ObjectId('51fe1dc57f2b0b1720688dbd')}
{u'_id': ObjectId('51fe1dde7f2b0b1720688dbf'), u'name': u'dev2', u'parent': ObjectId('51fe1dc57f2b0b1720688dbd')}
{u'_id': ObjectId('51fe1deb7f2b0b1720688dc0'), u'name': u'tag1', u'parent': ObjectId('51fe1dd87f2b0b1720688dbe')}
{u'_id': ObjectId('51fe200c7f2b0b0ac8db2f70'), u'name': u'bus2', u'parent': 0}

脚本.py

#Template
@app.route('/tree')
def tree():
    result=db['items'].find({'parent':0})
    return render_template('tree.html', render={'tree':result})

#Custom tag
def tree(_id):
    result=db['items'].find({'parent':ObjectId(_id)})
    return result

app.jinja_env.filters['tree'] = tree

我估计的代码不起作用:

{% for device in render.tree recursive %}
    {% if device._id|tree %}
        {% for i in device._id|tree %}
            {{ i.name }}
        {% endfor %}
        {{ loop(device._id|tree) }}
    {% endif %}
{% endfor %}

如何获得树状结构?谢谢。

4

0 回答 0