通过路由,交换,安全,Qos四大典型技术模块同你分享网络运维中的技术难题,让老司机带你躲过网络运维常见的那些坑, 查看详情>>>
0

我的帖子

个人中心

设置

  发新话题
直入正题:
在django数据模型里有一张表,时间更新字段是这么写的  
update_time = models.DateTimeField(auto_now=True ,verbose_name='更新时间')
在视图函数中对这张表进行处理,主要是更新:
AssetInfo.objects.filter(asset_id=req_data['asset_id_field']).update(**update_filds_dict)

那么问题来了,通过这个视图函数更新数据表,数据表更新成功,但表中update_time 时间并没有变。
但使用django自带admin页面修改表格数据这个字段却更新了。


求解、求助大侠,谢谢!!!






复制内容到剪贴板
代码:
mywork_date = models.DateTimeField(verbose_name=u"提交时间")
web_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
other_mywork = models.mywork(
   ...

mywork_date=web_time,
   ...
)

other_mywork.save()
我是这么写的,你可以参考一下




本帖最后由 天掉大石头 于 2017-11-30 11:36 编辑
引用:
原帖由 天掉大石头 于 2017-11-30 11:34 发表
mywork_date = models.DateTimeField(verbose_name=u"提交时间")
web_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
other_mywork = models.mywork(
   ...

mywork_date=web_time,
   ...
)

other ...
这样写就是主动去更新这个时间段,目的能够实现。不知道我理解的有没有问题,感谢你的回复!  但是我不是很明白,字段设置了auto_now=True后,当这张表有更新,时间不是也应该自动更新吗?  或者说,save()和update()更新是有区别的?



引用:
原帖由 Gary587 于 2017-11-30 12:15 发表

这样写就是主动去更新这个时间段,目的能够实现。不知道我理解的有没有问题,感谢你的回复!  但是我不是很明白,字段设置了auto_now=True后,当这张表有更新,时间不是也应该自动更新吗?  或者说,save()和update()更新是有区别的 ...
已经找到答案!一下文字复制自django官方文档:
DateField.auto_now¶
Automatically set the field to now every time the object is saved. Useful for “last-modified” timestamps. Note that the current date is always used; it’s not just a default value that you can override.

The field is only automatically updated when calling Model.save(). The field isn’t updated when making updates to other fields in other ways such as QuerySet.update(), though you can specify a custom value for the field in an update like that.



楼主怎么解决的?



引用:
原帖由 jamella001 于 2017-12-25 22:50 发表
楼主怎么解决的?
官方文档说调用Model.save()时,字段会自动更新。 当以其他方式更新字段如QuerySet.update()时,该字段不会更新.
解决方法其实很简单,使用Model.save()来更新;或者使用QuerySet.update(),更新内容里获取当前时间作为该字段的值。



引用:
原帖由 Gary587 于 2017-12-26 10:17 发表

官方文档说调用Model.save()时,字段会自动更新。 当以其他方式更新字段如QuerySet.update()时,该字段不会更新.
解决方法其实很简单,使用Model.save()来更新;或者使用QuerySet.update(),更新内容里获取当前时间作为该字 ...
学习了,谢谢楼主!



提示: 作者被禁止或删除 内容自动屏蔽
‹‹ 上一贴:AttributeError: module 'copy' has no attribute 'de ...   |   下一贴:新闻页里面的上下翻页面没有了 怎么破? ... ››
  发新话题
快速回复主题
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 友情链接 |意见反馈 | 网站地图
Copyright©2005-2018 51CTO.COM
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系:bbs@51cto.com