ブログ アプリの場合、投稿が公開されたすべての月のリストを取得しようとしていますが、テンプレートでレンダリングされた間違った月のセットが見つかりました。ハッキングしたところ、次の結果が見つかりました。
>>> date_list = Entry.objects.filter().dates('pub_date','month')
上記のコードでは、正しい月のセットが得られます。
>>> date_list[6]
datetime.datetime(2012, 6, 1, 0, 0, tzinfo=<UTC>)
月は 6 月を示しますが、テンプレートを使用してレンダリングすると、月が 1 つ減ります。つまり、'may' です。
>>> t = Template("The month is {{ month|date:'m' }} ")
>>> c = Context({"month": date_list[6]})
>>> t.render(c)
u'The month is 05 '
一方、真の価値は
>>> date_list[6].month
6
この数か月のバグを除いて、すべて正常に動作します。何か基本的なものを見逃しているのでしょうか、それとも django のテンプレート エンジン自体のバグなのでしょうか?