私は現在、「一時的な」オブジェクトであり、永続化するためのものではなく、単に比較するためのものである宣言的アプローチを使用して、sqlalchemy オブジェクトを作成しようとしています。
そのため、現在のセッションの「外」でそれらを作成したいと思います。問題は、それらを1つずつ消去しないと、セッションがそれらをフラッシュしようとするため、外部キーエラーが作成されることです(オブジェクトが不完全であるため、これは正常です)。
私は sqlalchemy.ext.declarative の「declarative_base」を使用して基本クラスを作成し、それを継承してモデル オブジェクトを作成しました。例(疑似コード):
class BaseEntity(object):
... common columns ...
Base = declarative_base(cls=BaseEntity)
class MyObject(Base):
... other columns ..
今私がするたびに:
tmpobj = MyObject()
私はする必要があります(別のモジュールで宣言されたscoped_sessionであるセッションオブジェクトを使用)
session.expunge(tmpobj)
私の tmp オブジェクトが作成される (そして互いにネストされる) 複雑な方法を考えると、これは本当に面倒です。
オブジェクトがセッションに追加されるのを防ぐために MyObject() コンストラクターに渡すことができる特別なパラメーターはありますか?