我的数据库表中有一个start_date和end_date,如何返回当前日期介于这两个值之间的所有记录?

时间:2018-12-20 05:41:32

标签: django django-models django-templates django-views

我正在尝试查看合同当前是否处于活动状态,因此我需要检查当前日期是否在合同开始日期和结束日期之间。

class Contract(models.Model):
    user = models.ForeignKey(User, on_delete = models.CASCADE)
    start_date = models.DateField(null = True, blank = True)
    end_date = models.DateField(null = True, blank = True)

2 个答案:

答案 0 :(得分:3)

您可以做到

import datetime

today = datetime.date.today()
Contract.objects.filter(start_date__lte=today, end_date__gte=today)

答案 1 :(得分:2)

以下应该可以获取开始日期在今天之前或今天,结束日期在今天之后或今天的合同。

lte ==低于或等于

gte ==大于或等于

from django.utils import timezone

date_today = timezone.now().date()    
active_contract = Contract.objects.filter(start_date__lte=date_today, end_date__gte=date_today)