加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用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查询并不总是使其更有效.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读