我想对混合属性中的id进行一些格式化,以便10以下的数字以P0为前缀(P01、P02、03等)。下面的代码从elements.py中的__bool__方法抛出一个TypeError: Boolean value of this clause is not defined。我遗漏了什么?
在我的models.py中:
@hybrid_property
def conversion_number(self):
return 'P0{}'.format(self.id) if self.id < 10 else 'P{}'.format(self.id)发布于 2018-05-02 04:08:42
这是我的解决方案:
@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没有本质上的不同。
https://stackoverflow.com/questions/50107541
复制相似问题