我正在构建一个小应用程序并同时测试Pyramid / Chameleon + MongoDB 到目前为止,我很喜欢它,但是我遇到了死胡同
快速查看我要从类别集合中显示的数据
_id:"category"
themes:Array
0:Object
_id:"theme1"
1:Object
_id:"theme2"
2:Object
_id:"theme3"
user:"username"
主题是mongoengine中的EmbeddedDocumentListField(但是为此,我只需要ID)
我想出了如何tal:用
重复我的类别pt文件
<div class = "category" tal:repeat="c categories">
<h2>${c.id}</h2>
</div>
viewmodel
self.categories = get_category_for_user(user)
我现在想要的是嵌套tal:repeat以显示这样的结果
<div class = "category" tal:repeat="c categories">
<h2>${c.id}</h2>
<div class="theme" tal:repeat="t themes">
<div class="title">
<a href="/theme/${t.id}">${t.id}</a></div>
</div>
</div>
</div>
问题是要获取主题,我需要类别,但我还没有弄清楚如何将循环中使用的类别提取到viewmodel。有什么办法可以将变量从pt传递到viewmodel py文件吗?像 tal:repeat the theme($ {c.id})这样的东西吗? 还是我完全错了,有一种简单的方法可以做到这一点?
答案 0 :(得分:1)
我在这里的上一个问题中找到了答案,很抱歉造成干扰
答案非常简单:
<div class = "category" tal:repeat="c categories">
<h2>${c.id}</h2>
<div class="theme" tal:repeat="t c.themes">
<div class="title">
<a href="/theme/${t.id}">${t.id}</a></div>
</div>
</div>
</div>
第3行的区别在于重用c变量以获取嵌套数据。
金字塔真棒。