【发布时间】:2010-03-07 18:17:52
【问题描述】:
我正在尝试创建一个将项目放入表中的模板。
控制器:
items = Item.all().order('name').fetch(10)
template_values = {'items': items,
'headers': ['Name', 'Price', 'Quantity']}
render('Views/table.html', self, template_values)
模板:
<table>
<tr>
{% for header in headers %}
<th>{{header}}</th>
{% endfor %}
</tr>
{% for item in items %}
<tr><td><a href="detail/{{item.CSIN}}">{{item.name}}</a></td><td>{{item.CSIN}}</td></tr>
{% endfor %}
</table>
现在,模板被硬编码以查找item 的某些属性。我想更改它,以便它查找名称在headers 中的属性,或者查找前n 个属性,其中n 是headers 的长度。
我该怎么做?
【问题讨论】:
-
嗯,为什么要将模板逻辑(显示哪些列)放在视图中?
-
它根据
header是什么来选择要显示的列。这允许重复使用模板。在控制器中选择要显示的列,它通过header值告诉模板。
标签: python django google-app-engine templating