0
属性としてカスタムクラスとの仕事をSQLAlchemyのことができますどのように、私のDBモデルの一つは、問題は、この状態の欄には、DBに保存された状態の欄は、私はSQLAlchemyのとフラスコSQLAlchemyのを使用しています
class Item(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(8))
state = db.Column(db.Integer, default=ServerState.IN_PACKAGE, nullable=True)
def init_state(self):
self.state = State1
def transit_state(self):
self.state.next(self)
が付属しています整数としてではなく、適切なステートマシンを実装するためには、クラスとして実装されています
class State1(BaseState):
__int = 100
__name = 'State1'
@staticmethod
def next(item):
if item.contidition1 is None or item.condition2 is None:
raise InvalidStateTransition
item.state = State2
これがうまく機能し、コードのクリーンを保持しますが、重要な問題は、私はアイテムをコミットしたい場合ということですdbに、それは間違いなく私にエラーを与えます:
したがって、dbに保存するときにクラスを自動的にint表現に変換し、dbから取得したときにintをその状態クラスに変換する方法はありますか?
感謝!これは有望に見える – Chrim