hybrid_property вызывает TypeError в if / else - PullRequest
0 голосов
/ 30 апреля 2018

Я бы хотел выполнить некоторое форматирование идентификатора в гибридном свойстве, чтобы числа до 10 имели префикс P0 (P01, P02, 03 и т. Д.). Следующий код выдает TypeError: Boolean value of this clause is not defined из метода __bool__ в elements.py. Чего мне не хватает?

В моих models.py:

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

1 Ответ

0 голосов
/ 01 мая 2018

Это было мое исправление:

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

Проблема, похоже, заключалась в том, что id является атрибутом InstrumentedAttribute (не int), когда sqlalchemy инициализирует модель. Это странное поведение, потому что моя реализация существенно не отличается от примера в документации по SQLAlchemy.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...