在浏览了app引擎和webapp框架的一些基础教程之后,我试图显示与我创建的项目构造相关的文档(例如{%ifequal project.key doc.parentproject%})我创建了几个确实有一个与项目中的键相同的doc.parentproject的文档,但不知怎的,这个for循环永远不会运行。如果我用project.key替换实际的项目键值,那么它对于那些特定的kets返回true。我在这里缺少一些基本的模板吗?我无法在谷歌或django网站上找到任何答案(webapp使用django模板引擎)。任何帮助,将不胜感激。
很抱歉,如果这是基本的新材料......
{% for project in projects %}
<blockquote>
<div style="border:1px solid #999; padding:20px;">
<h3>{{ project.projectname|escape }} </h3>
<h5>{{ project.key }}</h5>
<table border="1" cellpadding="5" cellspacing="0" width="600">
<tr>
<td>Doc Feed Name</td>
<td>Feed author</td>
<td>Spreadsheet URL</td>
<td>Parent Project Key</td>
<td>Created on</td>
<td> </td>
</tr>
{% for doc in docs %}
{% ifequal project.key doc.parentproject %}
<tr>
<td>doc name:{{ doc.name|escape }}</td>
<td>{{ doc.author }}</td>
<td>{{ doc.link }}</td>
<td>{{ doc.parentproject }}</td>
<td>{{ doc.date }}</td>
<td>Delete</td>
</tr>
{% endifequal %}
{% endfor %}
</table>
{%endfor%}
答案 0 :(得分:1)
如果没有看到为此模板提供值的控制器代码,很难真正诊断出您遇到的问题,但我猜想 docs 变量没有得到列表 doc 明确期望的实体。
从一个好的设计角度来看,我建议给Project实体一个属性,该属性包含与之关联的文档列表。看起来每个文档都依赖于父项目,因此使用此代码会更简洁,更容易:
{% for doc in project.docs %}
...do my rendering here...
{% endfor %}
比你拥有的。
答案 1 :(得分:0)
如果“doc”是一个实体,并且“parentproject”是该实体上的ReferenceProperty,那么这里的问题是您正在尝试将Key与实体进行比较(ReferenceProperties会自动解析它们的引用)。你需要改用它:
{% ifequal project.key doc.parentproject.key %}