2013-03-18 47 views
1

我试图创建一个包含所有最新帖子的页面。如何在python中过滤基于日期时间范围的对象(Django)

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)) 

回答

3
start_date = end_date - datetime.timedelta(days=14) 
+0

这是我在我的tastypie资源: – noahandthewhale 2013-03-18 21:26:00

+0

queryset = Post.objects.filter(postTime__range =(date.today(),date.today() - timedelta(days = 14))) – noahandthewhale 2013-03-18 21:26:27

+0

@RiegieGodwin,我认为你有你的开始和结束时间的改变ersed。 – 2013-03-18 21:41:25

1
from datetime import date, timedelta 

Post.objects.filter(postTime__range=(date.today(), date.today() - timedelta(days=14))) 
+0

我试过你的方法,我仍然无法检索这些对象。 – noahandthewhale 2013-03-18 21:24:16

+0

queryset = Post.objects.filter(postTime__range =(date.today(),date.today() - timedelta(days = 14))) – noahandthewhale 2013-03-18 21:25:17

+0

我转发我的问题在这里,http://stackoverflow.com/questions/15487537 /如何对过滤器的对象为基础的上-A-DateTimeField字段范围合蟒-Django的使用 – noahandthewhale 2013-03-18 21:54:44

相关问题