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 をつけるんだったと思い出したわけでした。思い出せてよかった・・・。