请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

更新方法的问题

更新方法

  • 方法1: user.objects.update(xx=xx, xx=xx)
  • 方法2: user.xx=xx user.save()

PS user = User.objects.filter(id=xx) 获得

这里有点问题

如果user = User.objects.filter(id=xx) 获得user, 是QuerySet集合, 是没有user.xx的, 也没办法save(), 需要用索引

即使用了索引, 如 user[0].name=123, user[0].save(), 我看了数据库里还是不会更新, 不知道为什么

但是如果User.objects.get(id=xx) , 获得的user, 就可以user.name=123, user[0].save(), 数据库里会更新

测试

图片描述

正在回答 回答被采纳积分+3

1回答

deweizhang 2019-10-23 18:18:39

是的fiter是集合 get是单独对象 集合要单独处理某个必然是循环或索引 但fiter查询不到不会异常。fiter和update可以结合起来。课程内容永远不会百分之百全面,很多需要自己思考,就像你这样思想很对

0 回复 有任何疑惑可以回复我~
  • 提问者 慕哥1266152 #1
    但是我用了索引获得的对象,就不能用赋值。save的方法更新,也不报错,如图我测试,这是为什么呢
    回复 有任何疑惑可以回复我~ 2019-10-23 18:26:48
  • deweizhang 回复 提问者 慕哥1266152 #2
    理论上是可以的。因为已经锁定对象了,如果不可用 比如你使用[0].save()会报错说没有该方法之类的 但获取到了方法,对象就拿到了,确定update方法正确,另外更新的数据类型是否正确。
    回复 有任何疑惑可以回复我~ 2019-10-23 18:29:33
  • deweizhang 回复 提问者 慕哥1266152 #3
    hello 我刚测了一下是没问题的 结合你的代码 看看细节哪里存在问题—索引某对象进行更改加save是ok的
    回复 有任何疑惑可以回复我~ 2019-10-23 20:19:05
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号