检查在TMPL_Context(Python,Pylons,Genshi)中是否存在变量?
题
我试图弄清楚如何使用塔和python检查模板上下文中是否存在变量。我要做的是:
我有一个塔布局模板。这应包含一个消息部分,并且只有当变量 c.messages
存在于上下文中。消息部分看起来像这样:
<div py:if="len(c.messages) > 0">
<py:for each="msg in c.messages">
<strong>${msg}</strong>
</py:for>
</div>
如果控制器未定义C.Messages,则会产生错误。因此,我只想在定义变量时才包括此内容。有解决这个问题的解决方案吗?
解决方案
Genshi有一个定义的JUT方法
如果定义(消息):
http://genshi.edgewall.org/wiki/documentation/templates.html#defined-name
其他提示
将测试变成 hasattr(c, 'messages') and len(c.messages) > 0
..或简单地将消息设置为[
我很欣赏我正在挖一个旧线程,但是还有其他解决方案。
我一直在努力定义()正常工作。我发现的最有效的解决方案是将以下内容用于列表:
py:if="myobject.thelist.get('blah',0) == 0"
Genshi中的基本python-如果不确定,我们给它一个默认值。如果您需要确保默认值不会污染您的数据,请返回以外的其他内容。
不隶属于 StackOverflow