首页  >  文章  >  后端开发  >  如何按日期范围过滤 Django 对象?

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

Susan Sarandon
Susan Sarandon原创
2024-11-04 12:53:29430浏览

How to Filter Django Objects by a Date Range?

在 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>

按月过滤的替代方法:

如果您只需要根据月份过滤对象,可以使用以下语法:

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

排除范围结束:

如果您希望排除指定的范围末端,请考虑使用 gt(大于)和 lt(小于)过滤器,如 Bernhard Vallant 在编辑中建议的那样:

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

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn