In SQLAlchemy Declarative, wie richte ich Standardwerte für Spalten ein, so dass vorübergehende oder ausstehende Objektinstanzen diese Standardwerte haben? Ein kurzes Beispiel:Wie setze ich Attribut-Standardwerte in deklarativen SQL deklarative?
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class A(Base):
__tablename__ = "A"
id = Column(Integer, primary_key=True)
word = Column(String, default="adefault")
a = A()
print a.word
Naiv, würde ich die Ausgabe von diesem erwartet adefault
zu sein. Natürlich ist die Ausgabe tatsächlich None
. Selbst beim Hinzufügen zu einer Sitzung bleibt es None
und wird nur gefüllt, wenn ich die Sitzung festlege (oder lege) und den Instanzwert erneut aus der Datenbank lese.
Gibt es eine Möglichkeit, einen Attributstandard festzulegen, ohne die Instanz in die Datenbank zu leeren? Ich habe versucht, die ColumnDefault
Dokumentation zu untersuchen, und es scheint keine offensichtliche Möglichkeit zu sein, den Typ/Python-Wert zu überprüfen, um es manuell in einer benutzerdefinierten deklarativen Basisklasse festzulegen.
Siehe auch: https://stackoverflow.com/q/14002631/6646912 – krassowski