首页 > 解决方案 > 如何使用查询集从博客(使用 django 构建)获取过去一小时发布的所有帖子?

问题描述

这是我的想法,但显然行不通......

谢谢

def PostUltimaOra(request):
    PostsLastHour = Post.objects.filter(pub_date__time__range=(datetime.time.now, datetime.time(now- 1h)))
    return render(request, 'blog/numeroposts.html', {'PostsLastHour': PostsLastHour})

标签: pythondjangodjango-queryset

解决方案


2 元组的第一个元素是最小界限,因此您应该交换元素:

from datetime import timedelta
from django.utils.timezone import now

def PostUltimaOra(request):
    dt = now()
    PostsLastHour = Post.objects.filter(pub_date__range=(dt-timedelta(hours=1), dt))
    return render(request, 'blog/numeroposts.html', {'PostsLastHour': PostsLastHour})

Post如果当前时间戳后面没有s,则可以过滤:

from datetime import timedelta
from django.utils.timezone import now

def PostUltimaOra(request):
    dt = now() - timedelta(hours=1)
    PostsLastHour = Post.objects.filter(pub_date__gte=dt)
    return render(request, 'blog/numeroposts.html', {'PostsLastHour': PostsLastHour})

推荐阅读