django不一致的id和日期为同一个查询,为什么?

时间:2013-01-23 05:04:37

标签: python django

我有下一个型号:

class People(models.Model):
    name = models.CharField(max_length=100)
    date = models.DateTimeField()

我的数据类似于:

id    name    date
120   john    9-11-2011 19:00:25
121   john    9-11-2011 19:05:55
....
180   steven  10-11-2011 00:00:45
...
468    cleve  10-11-2011 23:55:35

在views.py

- 我试试这个:

dates=[]
ids=[]
for i in People.objects.filter(date__range=["2011-11-10", "2011-11-11"]):
    ids.append(i.id)
    dates.append(i.date)
return HttpResponse("ids=%s  dates=%s"% (ids,dates))

所以,我有一个非常基本的orm查询来过滤一天的数据。代码有一个奇怪的问题,因为id应该是ids=[180...468], 但它返回

ids=[120...408]
dates=[datetime.datetime(2011, 11, 10, 0, 0, 45), ....datetime.datetime(2011, 11, 10, 23, 55, 35)

问题是代码返回的日期是正确的,但是ID不正确。这怎么可能,为什么我的同一个查询的id和日期不一致?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用大于/小于过滤器:

for i in People.objects.filter(date__lte='2011-11-10').filter(date__gte='2011-11-11'):
    ...