Django 我的db表中有一个开始日期和结束日期,如何返回当前日期介于这两个值之间的所有记录?

Django 我的db表中有一个开始日期和结束日期,如何返回当前日期介于这两个值之间的所有记录?,django,django-models,django-templates,django-views,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, bl

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

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)
你可以这样做

import datetime

today = datetime.date.today()
Contract.objects.filter(start_date__lte=today, end_date__gte=today)
你可以这样做

import datetime

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

如果合同的开始日期在今天之前,而结束日期在今天之后,则应在下文中列出

lte==低于或等于

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)
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)

如果合同的开始日期在今天之前,而结束日期在今天之后,则应在下文中列出

lte==低于或等于

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)
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)

我想添加更多内容,但这种“引导式”发布很糟糕,当屏幕到处跳转时无法键入帖子。您也可以在模型中添加当前日期。如果合同只有一个日期,或者既没有开始日期,也没有结束日期,该怎么办。您允许两者都为空值。如果合同在两个日期都没有值,它是否处于活动状态?空值是我做过的一些测试的一部分,是旧设计的一部分,以后将不允许它们。所有合同都必须有开始日期,没有结束日期的永久合同将在很长的将来自动生成。我想添加更多,但这种“引导式”发布很糟糕,当屏幕到处跳跃时,无法键入帖子。您也可以在模型中添加当前日期。如果合同只有一个日期,或者既没有开始日期,也没有结束日期,该怎么办。您允许两者都为空值。如果合同在两个日期都没有值,它是否处于活动状态?空值是我做过的一些测试的一部分,是旧设计的一部分,以后将不允许它们。所有合同都必须有开始日期,没有结束日期的永久合同将在遥远的将来自动生成一个。这是可行的,但似乎只返回第一个结果。它应该适用于所有匹配的结果。我看不到数据,因此无法验证日期。您将如何在模板中调用结果?Nvm,突然它工作起来,但没有做任何操作:/感谢您的帮助!这是可行的,但似乎只返回第一个结果。它应该适用于所有匹配的结果。我看不到数据,因此无法验证日期。您将如何在模板中调用结果?Nvm,突然它工作起来,但没有做任何操作:/感谢您的帮助!