2017-07-29 224 views
0

我正在做一個保存在我的django項目(實際上是一個遊戲)的每一個動作中,而我所要做的就是獲取我保存在每個新數據庫中的最後一個數據「點擊」。Django從數據庫中獲得最後一條記錄

newsave = Save() 
newsave.user = save.user 
myList = json.loads(newsave.myField) # Read previous here, here is the problem 
... (do some changes on myList) ... 
newsave.myField = json.dumps(myList) # Save the new move, UPDATED 

問題是我不知道如何正確讀取前面的動作。

+0

請發表您的模型代碼 –

回答

1

首先,你可能想從保存模型重命名爲別的東西,因爲它會讓你的代碼更容易理解。(Django模型已經內置在save()方法)

一技術來處理這個問題是通過重寫你的模型的save()方法。在這種情況下,你需要最後一條記錄,而不是最後一條,因爲當前記錄還沒有在數據庫中。

確保您的模型正在存儲最後一次移動的日期&,以便您可以準確地跟蹤移動。

from datetime import datetime 
class Yourmodel(models.Model): 
    modified = models.DateTimeField() 

    def save(self, *args, **kwargs): 
     ''' On save, update timestamps ''' 
     self.modified = datetime.now() 
     #Get the last object, current object havent inserted to db yet. 
     lastmove = Yourmodel.objects.latest('modified') 
     #do something to your lastmove.myfield here 
     #you can access the current myfield using self.myfield 
     return super(Yourmodel, self).save(*args, **kwargs) 
相關問題