在Django中使用会话信息构建动态树(模板问题)

时间:2010-07-27 23:26:10

标签: django templates iterator traversal

所以我有一个扩展/折叠树,我正在跟踪会话数据。

我希望能够根据会话数据在Django中渲染树。

我用以下内容保存状态:

request.session['treedata'][item_id] = state # (0 or 1)

在我的渲染模板中,我循环遍历项目,并为每个项目设置对象的可见性,例如:

{% for item in itemlist %} 
<div {% if request.session.treedata.<whatgoeshere?> %}style="display:none"{% endif %}>
Content of the subtree
</div>
{% endfor %}

所以我很困惑。

我可以指定:

request.session.treedata.(item.id)

request.session.treedata.(forloop.counter)

或者我是否必须将项目和状态预处理为新的上下文变量?

谢谢!

詹姆斯

1 个答案:

答案 0 :(得分:0)

假设item是模型,而item_iditem.id,您应该可以:

{% for item in itemlist %} 
  <div {% if request.session.treedata.item.id %}style="display:none"{% endif %}>
    Content of the subtree
  </div>
{% endfor %}

您可以在这里阅读Django模板如何查看变量:

http://docs.djangoproject.com/en/1.2/topics/templates/#variables