2013-02-28 7 views
8

In Django können wir diese zwei Parameter verwenden, wenn eine Datumsspalte machen:Was entspricht Djangos auto_now, auto_now_add in SQLAlchemy?

DateField.auto_now automatisch das Feld gesetzt, jedes Mal, jetzt das Objekt gespeichert wird. Nützlich für "zuletzt geänderte" Zeitstempel. Beachten Sie, dass das aktuelle Datum immer verwendet wird; Es ist nicht nur ein Standardwert, den Sie überschreiben können.

DateField.auto_now_add Automatisches Festlegen des Felds auf jetzt, wenn das Objekt zum ersten Mal erstellt wird. Nützlich für die Erstellung von Zeitstempeln. Beachten Sie, dass das aktuelle Datum immer verwendet wird; Es ist nicht nur ein Standardwert, der überschrieben werden kann.

Wie dies in SQLAlchemy zu tun?

Antwort

18

Schließlich habe ich SQLAlchemy des doc überprüfen, sollte dies der Weg sein:

Column('created_on', DateTime, default=datetime.datetime.now) 

Column('last_updated', DateTime, onupdate=datetime.datetime.now) 

doc hier:

http://docs.sqlalchemy.org/en/latest/core/schema.html#python-executed-functions

+0

Good find. Ich würde auch empfehlen, einen Link zu der Stelle anzulegen, an der Sie die Dokumente gefunden haben. –

+0

@MarkHildreth Das stimmt. Der Link wurde hinzugefügt. – zchenah

+1

Eigentlich ist das nicht ganz korrekt. Um Django nachzuahmen, sollte das Feld "last_updated" lauten: "Column ('last_updated', DateTime, default = datetime.now(), onupdate = datetime.now())' - da Django 'auto_now' Felder bei der Erstellung auf' now' setzt . – samuraisam