使用Django,我希望在今天之后找到所有已发布的事件,但仅限于包含
发布时间:2020-12-20 13:22:27 所属栏目:Python 来源:网络整理
导读:我有一个事件对象,其中from_date作为一个字段,表示事件何时开始.我想要做的是找到最近的事件,然后找到仍在该月内的下一个即将发生的事件.以下是我到目前为止的两个查询,有没有办法将它们组合起来? today = datetime.date.today()date = Event.objects.filte
我有一个事件对象,其中from_date作为一个字段,表示事件何时开始.我想要做的是找到最近的事件,然后找到仍在该月内的下一个即将发生的事件.以下是我到目前为止的两个查询,有没有办法将它们组合起来?
today = datetime.date.today() date = Event.objects.filter( status='P',# Published status pub_date__lte=today,# Published after today,or today from_date__gte=today,# Starting next ).order_by('from_date').only('from_date')[:1][0].from_date events = Event.objects.filter( # Published after today,with a published status,and start today or later pub_date__lte=today,from_date__gte=today,status='P',# We're only going to show one month at a time. from_date__month=date.month,from_date__year=date.year,) 解决方法
我认为你所做的事实上非常有效. Django的查询机制应该将它们分解为两个SQL查询,每个过滤器一个.
将所有内容干扰到单个SQL查询并不总是使其更有效. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |