• auto_now


    我们都知道 django 里面模型设计 一般会有常用的两个字段  创建时间 和 修改时间,这两个字段的定义是这样的:

        created = models.DateTimeField(auto_now_add=True, verbose_name="添加时间")
        updated = models.DateTimeField(auto_now=True, verbose_name="更新时间")

    一般来说,你对这个表的数据有修改的时候,修改时间会随之变动,但是我遇到一个情况,是即使你修改了这条数据的内容,但是修改时间并没有变动。

    问题解决:

    修改更新有两种方法

    1)save

    修改模型类对象的属性,然后执行save()方法

    hero = HeroInfo.objects.get(hname='猪八戒')
    hero.hname = '猪悟能'
    hero.save()
    2)update

    使用模型类.objects.filter().update(),会返回受影响的行数

    HeroInfo.objects.filter(hname='沙悟净').update(hname='沙僧')
    第一种修改更新的方法是会触发updated = models.DateTimeField(auto_now=True, verbose_name="更新时间")字段的更新时间的,第二种不会触发。

    所以如果你更新的数据没有触发更新时间,检查是否用了第二种方法,换成第一种修改的方式就可以了。

    解决:

    如果要用 update 这种方法修改多条数据,触发更新时间的字段,可以这样做:

    加一条修改数据,把修改时间这个字段修改成当前时间就可以了。

    StockChange.objects.filter(order_no=order_no).update(status=2, updated=datetime.now())
    ————————————————
    版权声明:本文为CSDN博主「python编程」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_43439853/article/details/83747102

  • 相关阅读:
    jbox使用总结
    NOI 2012 【迷失游乐园】
    SCOI 2008 【奖励关】
    trie树——【吴传之火烧连营】
    状压DP——【蜀传之单刀赴会】
    NOIP提高组2016 D2T3 【愤怒的小鸟】
    NOIP提高组2013 D2T3 【华容道】
    [学习笔记] [KMP]字符串匹配算法
    SHOI 2014 【概率充电器】
    HNOI 2015 【亚瑟王】
  • 原文地址:https://www.cnblogs.com/flintlovesam/p/12389386.html
Copyright © 2020-2023  润新知