Django从数据库获得最后一条记录-1

时间:2017-07-29 18:03:20

标签: python django python-2.7 django-models

我在我的django项目(实际上是游戏)的每一个动作中都做了一个Save,而我想要做的就是在每个新的"点击"中获取我保存在数据库中的最新数据。

onload

问题在于我不知道如何正确阅读上一步动作。

2 个答案:

答案 0 :(得分:1)

首先,您可能希望将模型从Save重命名为其他内容,因为它会使您的代码更容易理解。(Django模型已经内置了save()方法)

处理此问题的一种方法是覆盖模型的save()方法。在这种情况下,您需要最后一条记录而不是last-1,因为当前记录尚未在数据库中。

确保您的模型存储最后一次移动的日期和时间,以便您可以准确跟踪移动。

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)

答案 1 :(得分:0)