首页 > 后端开发 > Python教程 > 如何按日期范围过滤 Django 查询对象?

如何按日期范围过滤 Django 查询对象?

Patricia Arquette
发布: 2024-11-04 00:27:03
原创
389 人浏览过

How to Filter Django Query Objects by Date Range?

按日期范围过滤 Django 查询对象

使用 Django 模型时,按日期范围过滤查询对象是一项常见任务。为了实现这一点,您可以利用 Django 的内置日期范围功能。

让我们考虑一个类似于问题中提到的模型:

<code class="python">class Sample(models.Model):
    date = fields.DateField(auto_now=False)</code>
登录后复制

假设您需要过滤以下对象:属于特定日期范围,例如日期在 2011 年 1 月 1 日到 2011 年 1 月 31 日之间的日期。具体操作方法如下:

<code class="python">Sample.objects.filter(date__range=["2011-01-01", "2011-01-31"])</code>
登录后复制

此查询使用 __range 查找来指定日期Sample 对象的日期字段应落在的范围内。

或者,如果您想按月筛选对象,可以使用以下语法:

<code class="python">Sample.objects.filter(date__year='2011', date__month='01')</code>
登录后复制

此查询筛选所有对象日期为 2011 年 1 月的对象。

排除范围结束

请注意,上述查询包括范围结束(即 2011 年 1 月 1 日和 2011 年 1 月 31 日)第一个例子)。如果您需要排除这些范围结尾,可以使用 __gt(大于)和 __lt(小于)查找,如 Bernhard Vallant 在答案编辑中所建议的那样:

<code class="python">Sample.objects.filter(date__gt="2011-01-01", date__lt="2011-01-31")</code>
登录后复制

此查询过滤器日期大于 2011 年 1 月 1 日且小于 2011 年 1 月 31 日的所有对象,有效排除范围结束符。

以上是如何按日期范围过滤 Django 查询对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板