gpt4 book ai didi

django:正确检索日期和时间大于现在的数据

转载 作者:行者123 更新时间:2023-12-03 23:34:17 25 4
gpt4 key购买 nike

我有一个模型来描述这样的事件:

class Event(models.Model):
date = models.DateField()
time = models.TimeField()

我想检索所有 future 事件(即日期大于 now.date() )。但是,如果日期是今天,我想检索时间大于 now.time() 的今天的事件。 .

这就是我正在做的:
events = Event.objects.filter(date__gte=now.date()).filter(time__gte=now.time()).order_by('-date')

哪里 now = datetime.datetime.now()
但这是错误的,因为如果唯一的事件是明天并且它的时间小于当前时间(例如,如果事件是明天 09:00 而今天是 19:00),它会给我一个空集

这在 Django 中可能吗?

PS:我想避免遍历集合。

最佳答案

使用 Q 对象,它允许您使用 OR 语句进行查询。

from django.db.models import Q
Events = Event.objects.filter(
Q(date=now.date(),
time__gte=now.time()
|Q(date__gt=now.date())
).order_by('-date')
请注意,您可能希望对 time 进行排序。领域也是:
order_by('-date', '-time')

关于django:正确检索日期和时间大于现在的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9549744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com