web-dev-qa-db-ja.com

Djangoテンプレート:キー、forループでは値を使用できません

私が得るエラー:

Forループをアンパックするには2つの値が必要です。 1を得た。

これが私の表示

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)

これが私のテンプレートです:

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

次のようなテンプレートも試しました。

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

エラーはありませんが、{{ value }}はキーを表示します(これは問題ありません)が、{{ value.name }}何も表示されません。 {{ test }}私の口述を示しています。

6
bonblow

辞書の項目をループして、キーと値を取得します。

{% for key, value in test.items %}
18
Alasdair

Djangoに精通していない。ただし、デフォルトでは、Pythonは辞書のキーを反復処理します。また、Python2を使用していると仮定します。値を取得するには、次の操作を行う必要があります。

{test.itervalues()の値の%%}

両方が必要な場合は、次のことを行う必要があります。

{キーの%、test.iteritems()の値%}

それはあなたに鍵と価値の両方を与えるでしょう。

0
Anonymous