Django:查找两个日期之间的天数,并与sysdate进行比较,如果匹配则返回

时间:2017-09-13 16:10:43

标签: python django

我想通过将end_date和start_date之间的值与sysdate进行比较,并基于end_date和start_date(即Date_Fate)知道谁今天休假,如果它与sysdate匹配则返回。

models.py
class leave(models.Model): 
employee = models.ForeignKey(employees, on_delete=models.CASCADE, default='1')
start_date = models.DateField()
end_date = models.DateField()

2 个答案:

答案 0 :(得分:0)

假设start_dateend_datetoday都是date个对象,您可以通过以下方式检查某人是否休假:today >= start_date and today <= end_date

答案 1 :(得分:0)

这将为您提供leave个实例的查询集:

import datetime
today = datetime.date.today()
leave.objects.filter(start_date__lt=today, end_date__gt=today)

如果您想要包含边界,请使用__lte__gte,包括今天开始的leave个实例。

如果您需要员工,请按以下外键:

employees.objects.filter(leave__set_date__lt=today, leave__end_date__gt=today)

如果您没有执行任何强制措施,示例员工不能重叠leave个实例,请将.distinct()添加到employees查询集。