update tutorial one instalar index mysql peewee

mysql - tutorial - sqlalchemy



¿Existe una opción de actualización automática para DateTimeField en peewee como TimeStamp en MySQL? (3)

Me gustaría un campo de marca de tiempo que se actualice cada vez que se modifique el registro como en MySQL.

DateTimeField(default=datetime.datetime.now()) solo lo configurará la primera vez que se crea ...

¿Alguna tiene una solución simple? ¿La única solución es configurar manualmente las opciones de columna en la base de datos de MySQL?


Puede anular el método de save en su clase de modelo.

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)


Solo usa el tipo TIMESTAMP en MySQL. Este campo se actualizará cada vez que se actualice la fila.

En el model :

last_updated = peewee.TimestampField()


También puede anular el método de update para proporcionar. Al igual que lo que hace coleifer:

class Something(Model): created = DateTimeField(default=datetime.datetime.now) modified = DateTimeField @classmethod def update(cls, *args, **kwargs): kwargs[''modified''] = datetime.datetime.now() return super(Something, cls).save(*args, **kwargs) def save(self, *args, **kwargs): self.modified = datetime.datetime.now() return super(Something, self).save(*args, **kwargs)

También puedes hacer lo mismo en el método de replace