首页 > 解决方案 > 如何编写仅匹配 DateTime 列的分钟字段的 Django 查询?

问题描述

我正在使用 Django 3.2 和 PostGres 9.6。我有一个带有“创建”日期时间字段的模型......

class PriceQuote(models.Model):
        ...
    created = models.DateTimeField(null=False, default=datetime.now)

如何编写包含匹配已创建列的分钟字段的子句的 Django 过滤器查询?所以在下面

class PriceQuoteManager():
    def get_prices_per_hour(self, item):
        now = datetime.datetime.now()
        end_time = now.replace(second = 0, microsecond = 0)
        start_time = end_time - timedelta(days=1)
        return PriceQuote.objects.filter(
            item=item,
            created__range=[start_time, end_time],
            xxx=end_time.minute
        )

我想用一个子句替换“xxx”,该子句将“created”的分钟字段与“end_time”变量的分钟字段匹配。

标签: djangodatetimedjango-querysetdjango-filter

解决方案


您可以使用__minute

        return PriceQuote.objects.filter(
            item=item,
            created__range=[start_time, end_time],
            created__minute=end_time.minute
        )

推荐阅读