关于auto_now和auto_now_add的几点疑问
我采用update更新数据的时候,设置为auto_now的字段,为啥没有更新时间?
user=WeiboUser(username='ANTHONY7'),我采用这种方式去实例化对象的时候,为啥没有取到已有的数据,而是创建了新对象?我看老师讲的时候是取到了的呀,请解释一下,实例化的时候按什么规则给值才能取到已有的数据,而不是去创建新的对象?
user.save()的时候auto_now更新了时间,这个更新时间到底是怎么触发的?请介绍一下
正在回答
同学,你好。
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方法。
如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
我在打问题的时候,感觉是save()去触发的,由于尝试了一下,QuerySet里连save方法都没有,何谈使用呢。。。还是麻烦老师给解答一下,谢谢
- 参与学习 人
- 提交作业 218 份
- 解答问题 3562 个
本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星