0
from django.template import Template, Context
template = Template("""
      {% for language in languages %}
        THIS IS forloop.parentloop.first +++++++++
        {% for tag in revision_tags %}
          {% for case in CASES %}
          <tr>
            {% if forloop.parentloop.first %}<th rowspan="6">{{ language|capfirst }}</th>{% endif %}
            {% if forloop.first %}<th rowspan="2">{{ tag }}</th>{% endif %}
            <th>{{ case|capfirst }}</th>
          </tr>
          {% endfor %}
        {% endfor %}
      {% endfor %}
""")

c = Context({
    'languages': ["english", "french"],
    'revision_tags': ["d", "s", "p"],
    'CASES': ["foo", "bar"],
})

h = template.render(c)
print h

それぞれの言語は 1 回だけ見たいと思っていますが、2 回目にしました。

4

2 に答える 2

0

これを試してください(テストされていません)...

{% for language in languages %}
    THIS IS forloop.parentloop.first +++++++++
    {% for tag in revision_tags %}
      {% if forloop.parentloop.first %}<th rowspan="6">{{ language|capfirst }}</th>{% endif %}
      {% for case in CASES %}
      <tr>
        {% if forloop.first %}<th rowspan="2">{{ tag }}</th>{% endif %}
        <th>{{ case|capfirst }}</th>
      </tr>
      {% endfor %}
    {% endfor %}
  {% endfor %}
于 2012-05-23T05:23:48.887 に答える
0

これはバグではありません、私は誤解しました。この場合、テストは{% if forloop.parentloop.first and forloop.first %}祖父母の反復ごとに1つのtrueを取得する必要がありますlanguage

  {% for language in languages %}
    {% for tag in revision_tags %}
      {% for case in CASES %}
      <tr>
        {% if forloop.parentloop.first and forloop.first %}
        <th rowspan="6">{{ language|capfirst }}</th>
        {% endif %}
        {% if forloop.first %}<th rowspan="2">{{ tag }}</th>{% endif %}
        <th>{{ case|capfirst }}</th>
      </tr>
      {% endfor %}
    {% endfor %}
  {% endfor %}
于 2012-05-23T05:38:47.873 に答える