使用Django,我希望在今天之后找到所有已发布的事件,但仅限于包含事件的最近月份

使用Django,我希望在今天之后找到所有已发布的事件,但仅限于包含事件的最近月份,第1张

概述我有一个事件对象,其中from_date作为一个字段,表示事件何时开始.我想要做的是找到最近的事件,然后找到仍在该月内的下一个即将发生的事件.以下是我到目前为止的两个查询,有没有办法将它们组合起来? today = datetime.date.today()date = Event.objects.filter( status='P', # Published status p 我有一个事件对象,其中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_dateevents = 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查询并不总是使其更有效.

总结

以上是内存溢出为你收集整理的使用Django,我希望在今天之后找到所有已发布的事件,但仅限于包含事件的最近月份全部内容,希望文章能够帮你解决使用Django,我希望在今天之后找到所有已发布的事件,但仅限于包含事件的最近月份所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1196451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存