例えばとある処理が行われてから丸1日以上間隔が空いている場合はOKだけど1日未満の場合はNG、のような感じで処理で分けたい時なんかに使えます。
SNS機能を持ったアプリで通知を作成するか否かの判定などに使うといいかんじのやつです。
コード
まずは条件分岐に必要な素材を書き出してみます。
# インポート必須
from datetime import datetime, timedelta
from django.utils import timezone
# 比較対象のDateTime
print(post.created_at)
# 結果:2018-07-06 19:36:52.949309+00:00
# 現在日時
print(timezone.now())
# 結果:2018-07-06 19:38:56.865944+00:00
# 現在日時 - 1日
print(timezone.now() - timedelta(days=1))
# 結果:2018-07-05 19:38:56.865964+00:00
あとはこれらを使って条件文を書くだけ!
例えば現在時刻がpostが作成されてから1日未満ならスキップ、1日以上ならスキップせずに何らかの処理を行いたい場合は以下のようになります。
# 現在日時がpostが作成されてから1日(24時間)未満の場合はスキップする
if post.created_at > (timezone.now() - timedelta(days=1)):
print('スキップするよ!')
else:
print('スキップしないよ!なんらかの処理を行うよ!')
1日を2日、3日と変えたい、あるいは単位を変えたい等の場合は「timedelta(day=1)」の部分を変更すればOKですね。