hybrid_property在if / else中引发TypeError

时间:2018-04-30 20:11:24

标签: python python-3.x sqlalchemy

我想在混合属性中对id进行一些格式化,以便10以下的数字以P0为前缀(P01,P02,03等)。以下代码从elements.py中的INSERT ... ON DUPLICATE KEY UPDATE方法中抛出TypeError: Boolean value of this clause is not defined。我错过了什么?

在我的models.py中:

__bool__

1 个答案:

答案 0 :(得分:0)

这是我的修复:

@property
def conversion_number(self):
    return 'P0{}'.format(self.id) if self.id < 10 else 'P{}'.format(self.id)

当sqlalchemy初始化模型时,问题似乎是id是InstrumentedAttribute(而不是int)。这种行为很奇怪,因为我的实现与SQLAlchemy文档中的example没有太大的不同。