2012-07-04 74 views
1

您好我是GAE和Python的新手,來自PHP和MySQL背景。 道歉,如果我的問題是天真的,沒有足夠的功課。GAE數據存儲:如何在db.DateTimeProperty()設置過濾器

在我的應用程序中,我有很多主人,我想逐一顯示這些主人(將視圖切換到列表模式的選項)。

我所有的主模型都有一個名爲ts的屬性,保存時會自動填充當前時間戳。

我有一個方法get_rec在我的主類,它默認提取最後保存的記錄。在點擊導航按鈕時,系統應該採用上一個或下一個。爲了實現這一點,我寫這篇文章的代碼

q = db.Query(modl) 
if pos == "prev" : 
    #ts is a string returned by JSON as 2012-07-03T14:19:36.817000 
    q.filter("ts <", ts.replace("T", " ")) 
    q.order('-ts') 
elif pos == "next" : 
    q.filter("ts >", ts.replace("T", " ")) 
    q.order('ts') 
else : 
    q.order('-ts') 
res = q.fetch(1) 
return simplejson.dumps(res, cls=jsonEncoder) 

但返回的數據對象始終是最後一個記錄。 順便提一下,json發送的ts在時間前有一個T,而在數據瀏覽器控制檯上,我找不到任何T,而是一個空格。我嘗試用空格替換T.我應該將日期對象作爲datetime.datetime()而不是日期字符串傳遞嗎?

您需要將字符串轉換成日期時間

我失去的東西在這裏...提前

+0

好的。這是我的錯誤。 MySQL始終將datetime存儲爲字符串,並且字符串比較很容易實現,但不會在數據存儲上實現。正如我最初懷疑日期時間存儲爲python日期對象,我需要通過datetime.datetime.strptime(ts,'%y-%m-%dT%H:%M:%S')。 GAE版本不支持。%f這是另一個我們可以很容易地將其與其他SO問題和答案進行整理的問題。 – Jegatheesh

回答