在Django中,我想从数据库中检索最后插入的记录并更新其值。
我使用此模型:
def User(models.Model):
name = models.CharField(max_length=15)
我运行以下代码来检索最后插入的记录并更新名称:
User.objects.last().update(name=‘NEW NAME’)
但是,错误是更新不是已知方法。
.last()确实返回整个记录,还是仅返回主键?
非常感谢您。
答案 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()
从终端退出