我们说我有一个数组中的日期列表,我想只保留已过期的日期列表,以便稍后删除它们。但我试图在数组中的每个日期传递IF条件,并仅打印已过期的日期。问题是我不明白如何用Python做到这一点。
以下是我的想法:
# model.objects.all() contains the dates of each objects
for data in model.objects.all():
if data.created_date < datetime.datetime.now() - datetime.timedelta(seconds=20):
print(data.created_date)
上面的代码给了我这个错误:
TypeError:无法比较offset-naive和offset-aware datetimes
我做错了什么,解决方案是什么?
答案 0 :(得分:1)
from django.utils.timezone import now, timedelta
expired_date = now() - timedelta(seconds=20)
如果你想看到它们:
model_list = YourModel.objects.filter(created_date__lt=expired_date)
for model_item in model_list:
print model_item.created_date
如果您只想删除它们:
YourModel.objects.filter(created_date__lt=expired_date).delete()