class Case( models.Model ):
created = models.DateTimeField()
modified = models.DateTimeField()
STATUS = (
('Active', 'Active'),
('Hold', 'Hold'),
('Expired', 'Expired'),
('Cancelled', 'Cancelled'),
)
status = models.CharField(max_length=32, choices=STATUS)
现在我想要提取记录,状态已过期不到2个月,只是在2个月之前过期,不应计算在内。
我已阅读__here subtraction of dates
,但在我的情况下不起作用。
expired_cases = Case.objects.filter( status = 'Expired', modified__lt = datetime.now() - timedelta(days=60) ).count()
这种查询可能有效,但我不想硬编码这段日子。
请帮我解决这个问题。 提前谢谢:)
答案 0 :(得分:0)
使用python-dateutil模块。从修改后的时间和减去中创建 Python 日期时间对象。它应该工作。
答案 1 :(得分:0)
您可以使用python的日历库返回日期列表。请注意,它不处理闰年,因此您需要为此实现解决方案。
>>> days = calendar.mdays
[0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
以这种方式获取当月的日子,然后计算您需要的时间点。您需要从列表中删除第一个元素才能使其正常工作。
>>> days = days[1:]
>>> month = datetime.date.today().month-1 #-1 due to 0-based indexing in list
>>> delta = days[month-1] + days[month-2]