2014-03-13 91 views
0

我目前有一項功能,每12小時將1到4個條目寫入數據庫。當滿足某些條件時,函數會再次被調用以基於前面的條件再寫入1-4個條目。現在時間不是唯一的因素,我必須檢查條件是否滿足,並且因爲條目都在同一個數據庫中,所以我必須根據他們在數據庫中發佈的時間來區分它們(DateTimeField在代碼中)獲取最新條目django

我怎麼能做到這一點? django中是否有一個我無法找到的函數?或者我不得不看看一個相當複雜的解決方案。

的素描時,我會說,我期望是這樣的:

latest = [] 
allData = myManyToManyField.objects.get(externalId=2) 
for data in allData: 
    if data.Timestamp.checkIfLatest(): #checkIfLatest returns true/false 
     latest.append(data) 

甚至更​​好的是這樣的(雖然我不認爲這是實現千萬)

latest = myManyToManyField.objects.get.latest.filter(externalId=2) 

回答

2

django文檔是非常非常好,特別是在查詢集和模型層功能方面。這通常是你應該看的第一個地方。這聽起來像你想.latest(),但很難告訴你有關條件的要求。

latest_entry = m2mfield.objects.latest('mydatefield') 
if latest_entry.somefield: 
    # do something 

或者,也許你想:

latest_entry = m2mfield.objects.filter(somefield=True).latest('mydatefield') 

您可能也有興趣order_by(),這將根據您指定的字段中的行排序。然後,您可以遍歷所有m2m字段,直到找到與條件匹配的字段。

但沒有關於這些條件是什麼的更多信息,很難更具體。

+0

哦,非常感謝,這正是我一直在尋找的。我現在覺得很愚蠢...... – Jutschge

0

它只是一個想法..我們可以保持在數據庫中的紀元時間(entrie)字段作爲主鍵,並與以前的entiries比較,並diffrentiate他們