博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django的auto_now=True没有自动更新
阅读量:5168 次
发布时间:2019-06-13

本文共 803 字,大约阅读时间需要 2 分钟。

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()

 

转载于:https://www.cnblogs.com/aguncn/p/10319255.html

你可能感兴趣的文章