在 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中文网其他相关文章!