0

私はモデルの事にメソッドを持っています:

def method(self, session):
        if self.column_value is None:
            self.column_value = some expensive calculation
            session.add(self)
            session.commit()
            return self.column_value                        
        else:
            return self.column_value

そのため、thing_instance.method を実行して column_value を返し、必要に応じて計算することができます。これは私が他の場所で行った方法であり、Pythonでこれを行うことに適応しようとしています。

これは私が望むように機能していません.エラーが大量に発生しています....より良い方法は何ですか?

編集:

その方法は、一言で言えばそれです。私はthing_instanceを持っていて、thing_instance.method()を呼び出します。私が得ているエラーは次のとおりです。

sqlalchemy.exc.InterfaceError: (InterfaceError) Error binding parameter 0 - probably unsupported type

どちらがより便利かもしれません。

要求に応じてより具体的なコードを入力しますが、それは私の質問の邪魔になります。ここでの問題は次のとおりです: 列の値が設定されていない場合、インスタンスの列の値を計算して更新する sqlalchemy モデルのメソッドを正確に記述するにはどうすればよいですか? pythoinic/sqlalchemic の方法で? バリエーションで試したことがうまくいかなかったので、脇に置き、この質問をしました

EDIT2:

列の型エラーでした……計算値がリストだったので、列として PickleType を変換するか使用する必要があります。ポインタは引き続き高く評価されます。

4

1 に答える 1

0

あなたが参照しているエラーは、整数 0 が問題の型の無効な値であるためですか? また、thing_instance がすでに永続的な接続状態にある場合は、それをセッションに追加する必要はありません! また、 asession.commit()はおそらくあなたがここで本当に望んでいるものではありませんsession.flush()

于 2012-05-09T20:06:27.827 に答える