2017-09-26 4 views
1

erreur que je reçois:Django Modèle: clé, valeur impossible dans la boucle pour

Besoin 2 valeurs pour décompresser en boucle; obtenu 1.

Voici ma vue:

class Index(View): 
    def get(self, request, slug): 
     test = { 
      1: { 
       'id': 1, 
       'slug': 'test-slug-1', 
       'name': 'Test Name 1' 
      }, 
      2: { 
       'id': 2, 
       'slug': 'test-slug-2', 
       'name': 'Test Name 2' 
      } 
     } 
     context = { 
      'test': test 
     } 
     return render(request, 'wiki/category/index.html', context) 

Voici mon modèle:

{% block content %} 
    <div> 
     {{ test }} 
     <ul> 
      {% for key, value in test %} 
       <li> 
        <a href="#">{{ key }}: {{ value }}</a> 
       </li> 
      {% endfor %} 
     </ul> 
    </div> 
{% endblock %} 

J'ai aussi essayé le modèle comme:

{% block content %} 
    <div> 
     {{ test }} 
     <ul> 
      {% for value in test %} 
       <li> 
        <a href="#">{{ value }}: {{ value.name }}</a> 
       </li> 
      {% endfor %} 
     </ul> 
    </div> 
{% endblock %} 

Non erreur alors, mais {{ value }} montre la clé (ce qui est bien), mais {{ value.name }} ne montre rien. Alors que {{ test }} montre mon dict.

Répondre

2

boucle à travers les éléments du dictionnaire pour obtenir les clés et les valeurs:

{% for key, value in test.items %} 
-1

Vous n'êtes pas familier avec Django. Cependant, par défaut, Python itère sur les clés d'un dictionnaire. Je vais aussi supposer que vous utilisez Python2. Pour obtenir les valeurs, vous devez faire:

{% pour la valeur en test.itervalues ​​()%}

Si vous voulez à la fois, vous devez faire:

{% pour la clé, la valeur dans test.iteritems()%}

Cela vous donnera à la fois la clé et la valeur.