Skip to main content
 首页 » 编程设计

python之Django 检查发布日期是否在模型的两个日期之间

2024年10月24日29shangdawei

我在 Django 方面并没有真正的经验,但现在我正在尝试使用这样的模型类开发简单的项目:

class FacebookEvent(models.Model): 
   start_time = models.DateTimeField(null=True) 
   end_time = models.DateTimeField(null=True) 

在 View 文件中 - 当我想要获取所有开始时间为今天、明天或任何其他日期范围(包括小时)的对象时没有问题:

my_date= request.POST.get('my_date','') # for eg. 2015-10-26 
events = FacebookEvent.objects.all().filter(start_time__range= 
    (datetime.combine(my_date,(datetime.min).time()), datetime.combine(my_date,(datetime.max).time()))).order_by('start_time') 

但现在我必须检查请求的日期 (my_date) 是否在模型的开始时间和结束时间之间。 我只需要做我以前做的一样的事情,但有点相反......

我花了几个小时,但我仍然找不到解决这个问题的任何概念。 有人知道吗?

提前致谢。

请您参考如下方法:

我不确定我是否理解这个问题。

如果您有模型实例和日期:

首先您需要将日期转换为 datetime.datetime 对象

from dateutil.parser import parse 
my_date= request.POST.get('my_date','') 
mdate = parse(mydate) 

Then you can use mdate to do logical comparisons. i.e: mdate > fbEvent.start_time

如果您想要日期之间的模型实例

 mdate = parse(mydate)    
events = FacebookEvent.objects.filter(start_time__gt=mdate, end_time__lt=mdate)