2013-01-23 63 views
2

我有一個型號:django對於同一個查詢不一致的id和日期,爲什麼?

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和日期爲同一個查詢?

+0

你真的應該datetime.datetime對象 – Aea

+0

被過濾日期也許就像你認爲你的數據不看?使用上面的代碼,ID中的最後一個條目顯然來自與日期中最後一個條目相同的表格行。 –

+1

這是一個潛在的時區問題,日期的解釋與數據庫不同,它們是如何由Django呈現的? –

回答

0

你可以嘗試使用大於/小於過濾器:

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

試過那個,但仍然得到相同的結果。 –

相關問題