Есть ли опция автоматического обновления для DateTimeField в peewee, например TimeStamp в MySQL?

Я хотел бы, чтобы поле timestamp обновлялось каждый раз, когда запись была изменена, как в MySQL.

DateTimeField(default=datetime.datetime.now()) установит его только при первом создании...

У любого есть простое решение? Единственное решение - вручную установить параметры столбца в MySQL db?

Ответы

Ответ 1

Вы можете переопределить метод 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)

Ответ 2

Просто используйте тип TIMESTAMP в MySQL. Это поле будет обновляться каждый раз, когда строка обновляется.

В model:

last_updated = peewee.TimestampField()