2

ブログ アプリの場合、投稿が公開されたすべての月のリストを取得しようとしていますが、テンプレートでレンダリングされた間違った月のセットが見つかりました。ハッキングしたところ、次の結果が見つかりました。

>>> 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 のテンプレート エンジン自体のバグなのでしょうか?

4

1 に答える 1

2

あなたのタイムゾーンは?日付は UTC であるため、UTC 時間の 2012-06-01 00:00:00 は、東部時間の 2012-05-31 20:00:00 など、別のタイム ゾーンではまだ前日である可能性があります。

関連ドキュメントへのリンクはこちら

于 2012-06-24T02:17:30.020 に答える