【问题标题】:How to filter an object based on a datetime range in python (Django)如何在python(Django)中根据日期时间范围过滤对象
【发布时间】:2013-03-07 03:22:40
【问题描述】:

我正在尝试创建一个包含所有最新帖子的页面。

class Post(models.Model):
     title = models.CharField(max_length=40)
     postTime = models.DateTimeField(auto_now_add=True)

我找到了这个例子:

 start_date = datetime.date(2005, 1, 1)
 end_date = datetime.date(2005, 3, 31)
 Post.objects.filter(postTime__range=(start_date, end_date))

我知道我应该使用 __range 函数。但是我怎样才能做到这一点,以便我可以获取从今天一直到两周前

的所有帖子

类似这样的:

start_date = datetime.date(date from two weeks ago)
end_date = datetime.date(currentdate)
Post.objects.filter(postTime__range(start_date, end_date))

【问题讨论】:

    标签: python django datetime filtering


    【解决方案1】:
    from datetime import date, timedelta
    
    Post.objects.filter(postTime__range=(date.today(), date.today() - timedelta(days=14)))
    

    【讨论】:

    • 我尝试了您的方法,但仍然无法检索这些对象。
    • queryset=Post.objects.filter(postTime__range=(date.today(), date.today() - timedelta(days=14)))
    • 我在这里转发了我的问题,stackoverflow.com/questions/15487537/…
    【解决方案2】:
    start_date = end_date - datetime.timedelta(days=14)
    

    【讨论】:

    • 这是我的美味派资源中的内容:
    • queryset=Post.objects.filter(postTime__range=(date.today(), date.today() - timedelta(days=14)))
    • @RiegieGodwin,我认为你的开始和结束时间颠倒了。
    • 我在这里重新发布了我的问题,因为我认为我没有正确解释我的问题,请看一下,stackoverflow.com/questions/15487537/…
    • 我尝试了您的建议如下 queryset=Post.objects.filter(date.today-timedelta(days=14), date.today())) 但我仍然无法检索对象
    猜你喜欢
    • 2014-09-04
    • 2015-04-10
    • 1970-01-01
    • 2011-06-07
    • 2021-04-16
    • 2021-04-02
    • 2022-07-07
    • 2016-11-25
    • 2020-02-15
    相关资源
    最近更新 更多