【发布时间】:2011-03-07 08:02:31
【问题描述】:
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()
这种查询可能有效,但我不想硬编码其中的日子。
请帮助我解决这个问题。 提前谢谢:)
【问题讨论】:
-
我不完全确定问题是什么。你有
Case.objects.filter(...的电话,你试过了吗?它奏效了吗? ...您当然不必对天数进行硬编码...您可以将其放入 Django 设置文件中,将其作为参数传递给视图等。 -
以上查询有效,但我不想硬编码两个月的 60 天,因为我不知道前两个月是 30 天,可能一个是 30,另一个是 28 ,或 31。所以我想要这样的查询,它独立于硬编码的日子。
-
好吧,我已经回答了你的问题,但我意识到固定天数,比如 60 天,仍然比计算前几个月的天数要好。如果我在中间,比如 3 月 8 日(今天),两个月前到底是什么时候?你没有计算 2 月和 1 月的日子。
标签: django model date subtraction