【问题标题】:Basic google app engine (python) templating issue基本的谷歌应用引擎(python)模板问题
【发布时间】:2011-01-11 21:02:41
【问题描述】:

在浏览了应用引擎和 webapp 框架的一些基本教程之后,我尝试显示与我创建的项目结构相关的文档(例如 {% ifequal project.key doc.parentproject %} )我创建了几个文档,它们确实具有与项目中的键相同的 doc.parentproject,但不知何故,这个 for 循环永远不会运行。如果我将 project.key 替换为实际的项目键值,那么对于那些特定的 ket,它会返回 true。我在这里缺少一些基本的模板吗?我无法在 google 或 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>&nbsp;</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 %}

【问题讨论】:

    标签: python django google-app-engine


    【解决方案1】:

    如果没有看到为该模板提供值的控制器代码,很难真正诊断出您遇到的问题,但我猜 docs 变量没有获取列表doc 个它明确期望的实体。

    从良好的设计角度来看,我建议为 Project 实体提供一个属性,该属性包含与其关联的文档列表。看起来每个文档都依赖于一个父项目,因此拥有此代码会更简洁:

     {% for doc in project.docs %}
       ...do my rendering here...
     {% endfor %}
    

    比你拥有的。

    【讨论】:

    • 谢谢,这是一个很好的建议。我是这里的新手,所以以不同的方式思考这个问题很有帮助。
    • @travist:欢迎来到 SO。习惯上投票有用/有用的答案。我们还鼓励您通过单击复选标记来接受最有帮助的答案。
    • travist,不客气。不要担心感觉自己像个新手。您的问题实际上写得很好,并包含一个有用的代码示例。仅此一项,您就可以跻身前 5% 的 SO 新人之列。
    【解决方案2】:

    如果“doc”是一个实体,而“parentproject”是该实体的 ReferenceProperty,那么这里的问题是您试图将 Key 与实体进行比较(ReferenceProperties 会自动解析它们的引用)。你需要改用这个:

    {% ifequal project.key doc.parentproject.key %}
    

    【讨论】:

      猜你喜欢
      • 2013-09-04
      • 1970-01-01
      • 2015-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      相关资源
      最近更新 更多