【发布时间】:2016-11-07 17:12:49
【问题描述】:
我正在使用 Python 的 pystache(这是标准的 Mustache api)。
这是我的数据结构的示例:
{
"results": [
{
"user": "foo",
"flags": [
"a",
"b",
"c"
]
},
{ ... }
]
}
现在在我的模板中我尝试这样做:
{{#results}}
{{> stuff}}
{{/results}}
其中stuff 是一个部分,该部分看起来像这样:
user: {{ user }}
isX: {{ flags.x }}
现在向模板提供数据的是一个充当“视图模型”的类,因此我可以规范化一些数据并使模板与规范化数据而不是上面显示的原始 json 数据交互。
问题是我不知道如何实现我的视图模型来处理我们循环嵌套数据的事实。
以上面的例子为例,我的原始数据使用一个字符串数组来表示 flags 值,我希望模板显示真或假,具体取决于值 x 是否出现在标志数组中。
在代码中我可能会尝试这样实现:
class Feed(Presenter):
def prepare_view(self, **params):
self.view = View()
self.view.template_path = '/app/static/views/feed.mustache'
self.view.results = self.post.results
self.view.flags = namedtuple('_', ['x'])('true')
return self
想象一下
namedtuple是我在数组中循环查找x字符串的地方,然后我会根据它返回真或假
现在这里的问题是我要编写namedtuple 代码,我需要知道要循环的结果的哪个索引。
我只是错过了一些非常明显的东西吗?
【问题讨论】:
标签: python arrays mustache pystache