template(=html) で、渡されてきた辞書でループする際のエラーが難しかった

view となる html に辞書ループを書いていた時のミスによる、エラー内容とその答えが難しかったので、共有します。

目次

間違いはどこでしょう?

辞書をループする際、こう書いてしまいました。どこが間違っているでしょう?

~
<tbody>
    {% for key, value in dic %}
    <tr>
        <td>{{ key }}</td>
        <td>{{ value }}</td>
    </tr>
    {% endfor %}
</tbody>
~

正解は、dic.items と書かないといけない、でした。で、この時に出たエラー内容がこちらでした。

エラー内容

ValueError at /~/
Need 2 values to unpack for loop;got 10.

で、ソース上でハイライトされていた1行がこちらでした。

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

boots4(cdn版) がおかしいの?え?( ゚Д゚)ハァ?

ってなるじゃん。のやつです。

後から見ればわかるけど・・・

bootstrap4 がおかしいわけがなく、本当のバグはどこやねんと思いながらソースを1行ずつ探していったときに、そういえば辞書ループで key, value の2つが欲しい時は、items をつけるんだったと思い出したわけでした。思い出せてよかった・・・。