今、仕事で Python の Web フレームワーク・Django を使った開発やってます。
先日、こんなエラー(下の画像・別の環境で再現させたもので、この開発の画面そのものではありません)が。

メッセージの先頭で "NoReverseMatch" とか言ってますね。これは「 URL の逆引きで一致するものがなかった」ってことになります。
真ん中あたり、背景色が灰色になった部分の先頭では、"Error during template rendering" とあって、これは「エラーはテンプレートの処理の最中に発生した」ということです。
なので、最初「これはテンプレートのリンクの URL の書き方を間違ったんだな」と思い、該当のテンプレートをくまなくチェックしたんですが、問題なし。ありっ?
よく見るとメッセージに "error at line 0" って出てる。ゼロ行目って、どこよ?
「これは別の場所が問題か」と考え、思い当たるのは URL の設定場所である urls.py 。しかし、確認しても問題なし。そういえば別のページで同じ URL の逆引きしても出ないしな。
次に怪しいのは views からテンプレートに渡される context データ。この URL の逆引きには引数が必要で、その引数の値は context データに入れることになっていたのですが、エラーメッセージの " with arguments" の後のカッコの中が空で、引数が渡されてないみたい。引数用のデータが設定されていないのか。きっと、それだ!
views.py を見てみました。
context["aaa"] = "aaa"
ちゃんと設定されてる・・・、なんでだ?
その後、半日悩んで、原因判明。
views.py はクラスベースで書いているのですが、エラーが発生したページ用のクラスの context データは、他のクラスの context データとほぼ同じだったので、そちらからコピペしました。その際、うっかり、メソッド get_context_data の最後の部分 return context を上書きして消しちゃったんですね。つまり、下の図のように。

return context がないとせっかく設定しても、反映されないのですね。しかも、なくても、get_context_data ではエラーにはならないという。
わかってしまえば、「こんなことで半日つぶしてしまうとはっ!!!」ってな、おバカさんな凡ミスなんですが、エラーメッセージからでは読み取りにくいミスでもあるんですよね・・・。必要なデータが格納される context の設定には注意しても、return context までは気が回らないしさ。ええ、言い訳ですとも。
このミス、前の現場でもやってたような気が・・・。ああっ、学んでないっ!
今後の戒めとして、恥を忍んで、ここにメモしときます。