【问题标题】:Django get last record -1 from databaseDjango从数据库中获取最后一条记录-1
【发布时间】:2017-07-29 18:03:19
【问题描述】:

我在我的 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

问题是我不知道如何正确阅读上一步。

【问题讨论】:

  • 请贴出您的型号代码

标签: python django python-2.7 django-models


【解决方案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)

【讨论】:

    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多