我想在混合属性中对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__
答案 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没有太大的不同。