ブログエントリのQuerySet
の場合、これらの投稿が作成された月のDateQuerySet
を作成します。クエリは次のとおりです。Queryset ".dates(...)"は、datetimeオブジェクトの別個のDateTimeQuerysetを返します。
dates = Entry.published.all().dates('pub_date', 'month')
「月」フィールドの年/月の値のリストを返します。
私は日付の4つのエントリがある場合:
- (2012年、2月3日、)
- (2012年、2月、第2回)
- (2012年、月、第24回)
- を(2011年12月28日)
返されるdatetimeオブジェクトは3つあります。 Dec
、Jan
、Feb
の代わりに、元の日付ごとに1つずつ返されます。
この動作は期待されていますか?私はdistinct()
をクエリに追加しようとしましたが、それでもすべての日付が返されます。
UPDATE
この問題を解決する簡単な方法は、DateQuerySet
からSet
を作るです:
dates = Entry.published.all().dates('pub_date', 'month')
return set(dates)
これは、重複にdatetime
オブジェクトが削除されますが、なぜこの私はまだ理解していません(または、私が日付()の動作を誤解している場合)
私は興味がありますが、date = Entry.published.dates( 'pub_date'、 'month')の返品は何ですか? – akonsu
これは基本的に 'datetime'オブジェクトのリストである' DateQuerySet'を返します。 –
でない同じ月に発生したかどうかにかかわらず、元のクエリーセットのすべてのエントリに対して1を返します。これは、all()コールのバージョンと同じように重複した日付を返しますか? – akonsu