码迷,mamicode.com
首页 > 其他好文 > 详细

Django的auto_now=True没有自动更新

时间:2019-01-25 15:07:40      阅读:324      评论:0      收藏:0      [点我收藏+]

标签:nbsp   update   code   image   create   object   bsp   present   自动   

auto_now=True自动更新,有一个条件,就是要通过django的model层。

如create或是save方法。

如果是filter之后update方法,则直接调用的是sql,不会通过model层,

所以不会自动更新此时间。官方解释:

What you consider a bug, others may consider a feature, e.g. usingupdate_fieldsto bypass updating fields withauto_now. In fact, I wouldn‘t expectauto_nowfields to be updated if not present inupdate_fields.

 

解决办法:

强制改成save()或是update时,带上时间。

如下:

    status_item = DeployStatus.objects.get(name=status_name)
    DeployImage.objects.filter(name=order_name).update(
        deploy_status=status_item,
        change_date=datetime.now())

    # 上面的操作,才会更新DeployImage表里的change_date(add_now=True)的时间,
    # 或是如下调用save()方法
    # deploy_item = DeployImage.objects.get(name=order_name)
    # deploy_item.deploy_status = status_item
    # deploy_item.save()

 

Django的auto_now=True没有自动更新

标签:nbsp   update   code   image   create   object   bsp   present   自动   

原文地址:https://www.cnblogs.com/aguncn/p/10319255.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!