更新Django中最后插入的记录

时间:2019-10-12 16:05:13

标签: django

在Django中,我想从数据库中检索最后插入的记录并更新其值。

我使用此模型:

def User(models.Model):
    name = models.CharField(max_length=15)

我运行以下代码来检索最后插入的记录并更新名称:

User.objects.last().update(name=‘NEW NAME’)

但是,错误是更新不是已知方法。

.last()确实返回整个记录,还是仅返回主键?

非常感谢您。

3 个答案:

答案 0 :(得分:4)

  

.last()确实返回了整个记录,还是仅返回了主键?

.last() [Django-doc]返回 last User对象,如果没有这样的记录,则返回None

现在,单个模型对象确实具有 no .update(..)方法。只有QuerySet拥有update(..) [Django-doc]方法。因此,您可以例如检索它,更改字段,然后保存对象:

last_user = User.objects.last()
if last_user is not None:
    last_user.name = 'NEW NAME'
    last_user.save()

答案 1 :(得分:0)

您首先必须获取用户模型,然后像这样 user = User.objects.all().last() 使用last,现在您可以使用此代码 user.name = 'Daniel' user.save()

更新

答案 2 :(得分:-1)

假设您的模型/数据库是这个

class User(models.Model):
    name = models.CharField(max_length=15)

然后转到终端并启动Shell进行一些测试。为此,你要做

python manage.py shell

在外壳中,首先需要导入数据库/模型

from nameofyourapp.models import User

要获取您可以编写的最后一个元素

lastUser = User.objects.all().last()

现在更改最后一个用户

lastUser["name"] = "Josh"

保存更改

lastUser.save()

从终端退出