Python Pytransitions:是否可以更改机器在模型中注入的模型属性?

Python Pytransitions:是否可以更改机器在模型中注入的模型属性?,python,pytransitions,Python,Pytransitions,我正在将pytransitions状态机改装为一个现有模型,该模型碰巧已经有一个名为status的列(该模型也恰好是一个SQLAlchemy模型) 我注意到转换库注入了一个状态字段,但我不确定是否有办法将该字段更改为我的模型的状态列,并使转换反映在该特定字段上。如果目前没有办法,我正在考虑使用机器。在改变状态后回调并从那里开始工作 除了(ab)使用特定的回调,还有什么好的解决方法 自转换0.7.1起,没有简单的方法可以调整模型状态属性的名称。覆盖转换。\u state\u change,Mach

我正在将
pytransitions
状态机改装为一个现有模型,该模型碰巧已经有一个名为
status
的列(该模型也恰好是一个SQLAlchemy模型)

我注意到转换库注入了一个
状态
字段,但我不确定是否有办法将该字段更改为我的模型的
状态
列,并使转换反映在该特定字段上。如果目前没有办法,我正在考虑使用
机器。在改变状态后
回调并从那里开始工作


除了(ab)使用特定的回调,还有什么好的解决方法

自<代码>转换
0.7.1起,没有简单的方法可以调整模型状态属性的名称。覆盖
转换。\u state\u change
Machine.\u触发器
Machine.is\u state
太复杂,imho。您可以使用
Model.state
作为属性来“别名”您的状态字段:

类模型:
@财产
def状态(自身):
返回自我状态
@状态设定器
def状态(自身、值):
self.status=值
或者使用SQLAlchemy的:

从sqlalchemy导入列,字符串,整数,创建引擎
从sqlalchemy.ext.declarative导入声明性基础
从sqlalchemy.orm导入同义词sessionmaker
从进口机器
engine=create_引擎('sqlite://:memory:')
会话=会话生成器(绑定=引擎)
Base=声明性_Base()
类别模型(基本):
__tablename_uu='Model'
id=列(整数,主键=True,自动递增=True)
状态=列(字符串,默认值='initial')
状态=同义词(“状态”)
定义报告(自我):
返回“”。格式(self.id、self.status)
Base.metadata.create_all(引擎)
会话=会话()
m1=型号()
m2=型号()
session.add_all([m1,m2])
m=机器(型号=[m1,m2],状态=['A','B'],首字母='A')
打印(session.query(Model).filter_by(status='A').all())
# >>> [, ]
m1.to_B()
打印(session.query(Model).filter_by(status='B').all())
# >>> []

从0.8.3开始,您可以在机器上指定
型号属性

来自导入计算机的
>>
2类物质(对象):
三通
4.
5块=物质()
6过渡=[
7{“触发器”:“熔体”,“源”:“固体”,“目的地”:“液体”},
8{“触发器”:“蒸发”,“源”:“液体”,“目的地”:“气体”},
9{“触发器”:“升华”,“源”:“固体”,“目标”:“气体”},
10{‘触发器’:‘电离’,‘源’:‘气体’,‘目标’:‘等离子体’}
11 ] 
12机器=机器(
13型号=块,
14种状态=[‘固体’、‘液体’、‘气体’、‘等离子体’],
15首字母“=”实心“,
16转变=转变,
17型号属性=“我的状态”
18 )
>>>整块状态
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“Matter”对象没有属性“state”
“Matter”对象没有属性“state”
>>>我的国家
“固体”