xpa*_*nta 13 django django-models
我有一个描述这样一个事件的模型:
class Event(models.Model):
date = models.DateField()
time = models.TimeField()
Run Code Online (Sandbox Code Playgroud)
我想检索所有未来事件(即日期大于now.date()).但是如果今天是今天,我想要检索今天的事件,时间大于now.time().
这就是我在做的事情:
events = Event.objects.filter(date__gte=now.date()).filter(time__gte=now.time()).order_by('-date')
Run Code Online (Sandbox Code Playgroud)
哪里 now = datetime.datetime.now()
但这是错误的,因为如果唯一的事件是明天而且它的时间小于当前时间(例如明天的事件是09:00,今天是19:00),它会给我一个空集.
这可能在django吗?
PS:我想避免迭代整个集合.
Ala*_*air 18
使用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')
Run Code Online (Sandbox Code Playgroud)
请注意,您可能还想对time字段进行排序:
order_by('-date', '-time')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13441 次 |
| 最近记录: |