过滤django中的日期和时间

时间:2015-01-27 00:00:15

标签: python django datetime

我有一个分开的日期和时间的模型,我想过滤未来的事件,最后写这个,这不是很酷。有更好的方式吗?我可以用某种方式使用combine()和min()吗?正如您在查询中看到的那样,它必须包含今天的时间事件>现在

future_events = CauseEvent.objects.filter(cause=instance).exclude(date__lt=datetime.now().date()).exclude(date=datetime.now().date(),
                                                                                                                  time__lt=datetime.now().time()).exists()

1 个答案:

答案 0 :(得分:2)

使用Q objects查找:

from django.db.models import Q

today = datetime.now().date()
now = datetime.now().time()

future_events = CauseEvent.objects.filter(cause=instance) \
                                  .exclude(Q(date__lt=today) |
                                           Q(date=today, time__lt=now))