检查开始事件的重新管理时间是否小于24小时。

问题描述 投票:0回答:1

在django中,我想检查还剩多少时间来启动一个事件,我知道这个事情。

 time_threshold = datetime.now() - timedelta(hours=24)
 event = Event.objects.get(seleteddate__lt=time_threshold)

但我的问题是,我把起始日期和起始时间保存在两个不同的变量中,就像这样。

class Event(models.Model):
    seleteddate = models.DateField(blank=True,null=True)
    startTime = models.TimeField()

P.S 由于其他的使用情况,我不能把它变成一个日期时间字段。所以,我怎样才能根据这两点来检查还有多少时间来启动一个事件。

python django
1个回答
1
投票

不是最好的方法,但是这个应该可以

 from datetime import datetime, date

 objs = Event.objects.all()

 for obj in objs:  
     date_obj = obj.seleteddate
     time_obj = obj.startTime
     # This would give us the datetime obj for that record
     datetime_obj = datetime.combine(date_obj, time_obj)

     # Subract the current datetime and datetime of the record to get no. of hours remaining
     hours_diff = (datetime.now()-datetime_obj).seconds//3600
     if hours_diff <= 24:
         # Logic to proceed

© www.soinside.com 2019 - 2024. All rights reserved.