1

現在、SQLAlchemy を使用するアプリケーションでテストを作成しています。

tasks所属していplansます。ただし、テーブルtasksへの外部キーでは多態的です。type参照:クラスが定義された後にポリモーフィック ID を設定するにはどうすればよいですか?

基本的に、 への外部キーに応じて、TypeTaskオブジェクトTaskAまたはTaskBオブジェクトであり、両方とも からサブクラス化Taskされ、デフォルトではインスタンスはTask(独自typeにアタッチされた) です。

私のテストBaseTestCase では、でセッションを初期化しますsetUp(そしてで閉じますtearDown)。

私がしようとすると:

self.task.plan = self.plan
self.session.add_all([self.plan, self.task])
self.task = self.session.merge(self.task)

次のエラーが表示されます。

/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py:154: SAWarning: Flushing object <Task at 0x5b93150> with incompatible polymorphic identity '58dbb417-1cb3-47c8-8bb4-5a7e2fe34498'; the object may not refresh and/or load correctly mapper._validate_polymorphic_identity(mapper, state, dict_)

というエラーが続きます

IntegrityError: (IntegrityError) null value in column "plan_id" violates not-null constraint

plan適切に割り当てたにもかかわらず。

どんな助けでも大歓迎です。

(これに関して他にどのような情報が重要かはわかりません。)

4

0 に答える 0