Pyramid / mongo :为 EmbeddedDocumentListField 构建一个嵌套的 tal:repeat
Pyramid / mongo : building a nested tal:repeat for a EmbeddedDocumentListField
我正在构建一个小应用程序并同时进行测试 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:repeat 我的类别
pt文件
<div class = "category" tal:repeat="c categories">
<h2>${c.id}</h2>
</div>
视图模型
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>
问题是获取主题,我需要类别,但我还没有想出如何将循环中使用的类别提取到视图模型。有没有办法将变量从pt传递到viewmodel py文件?像 tal:repeat t themes(${c.id}) 这样的东西?
还是我做的完全错了,有一个简单的方法可以做到这一点?
我在之前的问题中找到了答案,抱歉打扰了
tal nested dictionary syntax
答案非常简单:
<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 变量来获取嵌套数据。
金字塔真棒。
我正在构建一个小应用程序并同时进行测试 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:repeat 我的类别
pt文件
<div class = "category" tal:repeat="c categories">
<h2>${c.id}</h2>
</div>
视图模型
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>
问题是获取主题,我需要类别,但我还没有想出如何将循环中使用的类别提取到视图模型。有没有办法将变量从pt传递到viewmodel py文件?像 tal:repeat t themes(${c.id}) 这样的东西? 还是我做的完全错了,有一个简单的方法可以做到这一点?
我在之前的问题中找到了答案,抱歉打扰了
tal nested dictionary syntax
答案非常简单:
<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 变量来获取嵌套数据。
金字塔真棒。