0

これは私を夢中にさせています。私はすべてのlookup_typesを使用しましたが、どれも機能していないようです。

今日から2週間前に作成されたオブジェクトを選択する必要があります。

これが私が持っているものです:

twoweeksago = datetime.datetime.now() - datetime.timedelta(days=14)
pastblast = Model.objects.filter(user=user, created=twoweeksago, done=False)

モデルには、これを行う作成済みフィールドがあります。created = models.DateTimeField(auto_now_add=True, editable=False)

しかし、私のクエリはすべてを返していません。あなたが尋ねる前に、はい、正しい日付のレコードがデータベースにあります。

誰かが私が間違っていることについて提案をすることができますか?

ありがとう

4

1 に答える 1

3

DateTimeFieldは、DateFieldとは大きく異なります。

twoweeksago = datetime.datetime.now() - datetime.timedelta(days=14)

これにより、今日の日付、時、分、秒から14日が返され、結果には時間分秒なども含まれます。したがって、クエリは次のようになります。

pastblast = Model.objects.filter(user=user, created=twoweeksago, done=False)

ちょうどその正確な時間に作成されたインスタンスを見つけるつもりです。時間、分、秒ではなく、その日だけを気にしたい場合は、次のようなことができます。

pastblast = Model.objects.filter(user=user, created__year=twoweeksago.year, created__month=twoweeksago.month, created__day=twoweeksago.day, done=False)

djangoドキュメントを確認してください: https ://docs.djangoproject.com/en/1.4/ref/models/querysets/#year

于 2012-06-03T02:38:48.470 に答える