我对模型事物有方法:
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方式?我尝试的变体没有奏效,所以我把它放在一边,问了这个问题
编辑2:
这是一个列类型错误.....计算的值是一个列表,我需要转换或使用 PickleType 作为列。任何指针仍然赞赏。