SQLAlchemy Declarative で、一時的または保留中のオブジェクト インスタンスがデフォルト値を持つように、列のデフォルト値を設定するにはどうすればよいですか? 簡単な例:
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
単純に、これからの出力はadefault
. もちろん、出力は実際にはNone
. セッションに追加する場合でも、セッションNone
をコミット (またはフラッシュ) し、データベースからインスタンス値を再読み取りした場合にのみ、いっぱいになります。
インスタンスをデータベースにフラッシュせずに属性のデフォルトを設定する方法はありますか? ドキュメントを調査してみColumnDefault
ましたが、タイプ/python の値を調べて、カスタムの宣言型ベースクラスに手動で設定する明白な方法はないようです。