关于auto_now和auto_now_add的几点疑问

关于auto_now和auto_now_add的几点疑问

  1. 我采用update更新数据的时候,设置为auto_now的字段,为啥没有更新时间?

  2. user=WeiboUser(username='ANTHONY7'),我采用这种方式去实例化对象的时候,为啥没有取到已有的数据,而是创建了新对象?我看老师讲的时候是取到了的呀,请解释一下,实例化的时候按什么规则给值才能取到已有的数据,而不是去创建新的对象?

  3. user.save()的时候auto_now更新了时间,这个更新时间到底是怎么触发的?请介绍一下

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学,你好。

1、使用update不能自动更新具有auto_now属性字段的值。

2、同学的写法是新增了一条记录,并不是根据username查找数据。同学可以使用get\all\filter方法查找数据。

例:

user = WeiboUser.objects.get(username='zhangsan')

3、auto_now=True自动更新,有一个条件,就是要通过django的model层。如create或是save方法。如果使用update方法,则直接调用的是sql,不会通过model层,所以不会自动更新此时间。

同学可以使用get方法得到WeiboUser对象调用save方法,而不是使用结果集QuerySet调用。结果集可以使用for循环的形式得到每一个对象再调用save方法。

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • smallfish001 提问者 #1
    谢谢,结果集可以使用for循环的形式得到每一个对象再调用save方法,这个提示有启发
    2019-07-08 12:16:38
提问者 smallfish001 2019-07-06 14:32:37

我在打问题的时候,感觉是save()去触发的,由于尝试了一下,QuerySet里连save方法都没有,何谈使用呢。。。还是麻烦老师给解答一下,谢谢

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师