如何从发布时间筛选特定小时的帖子



我试图在特定时间内展示我的帖子,这是我的模型.py

class Booking(models.Model):
check_in = models.DateTimeField(default=timezone.now)
check_out = models.DateTimeField(blank=True,null=True)

我想在退房后显示对象12小时,例如,如果我们有一个对象,它的退房时间是2021年10月14日上午10点,那么显示该帖子直到晚上10点!

我试过了,但Booking.objects.filter(check_out__hour=12)不起作用

可以吗?提前感谢

您可以使用进行过滤

from datetime import timedelta
from django.db.models.functions importNow
Booking.objects.filter(
check_out__gte=Now()-timedelta(hours=12)
)

您可以进一步筛选,以便使用__range查找[Django-doc]:不会筛选出check_out晚于现在的对象

from datetime import timedelta
from django.db.models.functions importNow
Booking.objects.filter(
check_out__range=(Now()-timedelta(hours=12), Now())
)

这里Now()是数据库的时间戳。

我们还可以使用处理Web服务器机器的时间戳

from datetime import timedelta
from django.utils.timezone importnow
Booking.objects.filter(
check_out__range=(now()-timedelta(hours=12), now())
)

相关内容

  • 没有找到相关文章

最新更新