2017-07-29 376 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) 
相关问题