Основная проблема с шаблонизатором ядра приложения Google (python) - PullRequest
0 голосов
/ 01 февраля 2010

после прохождения некоторых основных руководств по движку приложения и среде веб-приложения я пытаюсь отобразить документы, которые связаны с созданной мной конструкцией проекта (например, {% ifequal project.key doc.parentproject%}) Я создал несколько документов, которые действительно имеют doc.parentproject, идентичный ключам из проекта, но так или иначе этот цикл for никогда не запускается. Если я заменю project.key на фактическое значение ключа проекта, то он возвращает true для этих конкретных кетов. Есть ли какая-то базовая шаблонная вещь, которую мне здесь не хватает? Я не смог найти никаких ответов в Google или на сайте Django (веб-приложение использует движок шаблонов 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%}

Ответы [ 2 ]

1 голос
/ 01 февраля 2010

Не видя код контроллера, который предоставляет значения для этого шаблона, трудно действительно диагностировать проблему, которая у вас есть, но я бы предположил, что переменная docs не получает список doc сущностей, которые он явно ожидает.

С хорошей точки зрения проектирования, я бы предложил предоставить объекту Project свойство, которое содержит список документов, связанных с ним.Похоже, что каждый документ зависит от родительского проекта, поэтому было бы чище и проще иметь этот код:

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

, чем то, что у вас есть.

0 голосов
/ 02 февраля 2010

Если «doc» - это сущность, а «parentproject» - это ReferenceProperty для этой сущности, проблема в том, что вы пытаетесь сравнить ключ с сущностью (ReferenceProperties автоматически разрешает их ссылки). Вам нужно использовать это вместо:

{% ifequal project.key doc.parentproject.key %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...