2013-08-29 4 views

Antwort

25

Sie können die Methode save für Ihre Modellklasse überschreiben.

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) 
+1

Bitte beraten, wie dies ebenfalls tun für Updates zum Beispiel Something.update (othercolumn = foo) .wo (id = 2) .execute(). Oder muss ich meinen Code neu schreiben, um stattdessen Model.save() zu verwenden? Danke im Voraus. – chrisinmtown

+1

Wenn Sie '.update()' aufrufen, müssen Sie möglicherweise die Zeitstempelaktualisierungslogik auf der SQL-Seite implementieren. 'update()' ruft 'save()' nicht auf. – coleifer

+0

Gibt es eine Möglichkeit, die Model-Klasse in Peewee zu überschreiben? – Jeff

2

Verwenden Sie einfach TIMESTAMP-Typ in MySQL. Dieses Feld aktualisiert sich immer dann, wenn die Zeile aktualisiert wird.

Im model:

last_updated = peewee.TimestampField() 
Verwandte Themen