项目场景:
项目场景:使用django框架中查询语句obj=user.objects.filter().first()
接着对结果进行更新obj.update()
问题描述
使用obj=user.objects.filter().first()
查询完之后,对obj使用obj.update()
进行数据更新,结果运行报错误‘xxx’ object has no attribute 'update'
(对象没有属性“更新”)
原因分析:
使用obj=user.objects.filter().first()
返回的是单个对象,对象类型是<class 'models.user'>
,方法.update()
不能作用在上面,只能作用在查询集上,比如obj=user.objects.filter()
,它的返回类型是<class 'django.db.models.query.QuerySet'>
解决方案:
1.使用.save()
方法
obj=user.objects.filter(age=18).first()
obj.name='aa'
obj.save()
2.使用主键作为过滤条件,保证只修改想要查到的一条数据
obj = user.objects.filter(id=1)
obj.update(name='aa')