2013-12-01 3 views
0

я сделал вложенный список, и с этого ид бы сделать таблицу в моем шаблонеДжанго вид шаблона вложен список

список выглядит примерно

ground_skills_available = [[category1, [skill1, skill2, skill3]], [category1, [skill1, skill2]]] 

Теперь я хочу, чтобы перечислить его, что вы получили категорию с ниже пунктов, следующей категории и других предметов. Проблема в том, что у меня нет подсказки о том, чтобы показывать только категорию, а не категорию + все элементы, так как вы не можете использовать индекс списка?

Может кто-то, пожалуйста, помогите мне?

<table> 
    {% for categories in ground_skills_available %} 
     {% for category in categories %} 
     <tr> 
      <td>{{ category }}</td> 
     </tr> 
      {% for skill in category %} 
      <tr> 
       <td>{{ skill.name }}</td> 
      </tr> 
      {% endfor %} 
     {% endfor %} 
{% endfor %} 

ответ

2

Изменить внешнее петля для

{% for category, skills in ground_skills_available %} 

Эта методика описана в Django for loop docs.

На первой итерации цикла, это будет иметь список [category1, [skill1, skill2, skill3] и назначить

category = category1 
skills = [skill1, skill2, skill3] 

Вы можете отобразить {{ category }}, и петля через skills.

Полагая, что вместе, у вас есть:

<table> 
    {% for category, skills in ground_skills_available %} 
     <tr> 
      <td>{{ category }}</td> 
     </tr> 
     {% for skill in skills %} 
     <tr> 
      <td>{{ skill.name }}</td> 
     </tr> 
     {% endfor %} 
    {% endfor %} 
</table> 
+0

. Взгляните на это, никогда не бойтесь узнать более возможные ответы на один вопрос :) –

1

{% if forloop.index == 1 %} ... some code ... {% endif %}

или

{% if forloop.index0 == 0 %} ... some code ... {% endif %}

Expectation:

{% for categories in ground_skills_available %} 

    {% for category in categories %} 
    {% if forloop.first %} 
    <tr> 
     <td>{{ category }}</td> 
    </tr> 
    {% else %} 
     {% for skill in category %} 
     <tr> 
      <td>{{ skill.name }}</td> 
     </tr> 
     {% endfor %} 
    {% endif %} 
    {% endfor %} 

{% endfor %} 
+0

Спасибо, я как раз собирался спросить, как я должен реализовать его, потому что я не смог получить его работу. Но это отлично работает –

Смежные вопросы