在MySQL中像TimeStamp这样的peewee中有DateTimeField的自动更新选项吗?

Xel*_*elt 18 mysql peewee

我希望每次修改记录时更新时间戳字段,就像在MySQL中一样.

DateTimeField(default=datetime.datetime.now()) 只会在第一次创建时设置它...

有没有简单的解决方案?唯一的解决方案是在MySQL db中手动设置Column选项吗?

col*_*fer 33

您可以save在模型类上覆盖该方法.

class Something(Model):
    created = DateTimeField(default=datetime.datetime.now)
    modified = DateTimeField

    def save(self, *args, **kwargs):
        self.modified = datetime.datetime.now()
        return super(Something, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

  • 杰夫......你到底在说什么? (3认同)
  • 如果您正在调用`.update()`,那么您可能需要在 SQL 端实现时间戳更新逻辑。`update()` 不会调用 `save()`。 (2认同)