У меня есть относительно простая модель, в которой я хочу объединить данные из 2 таблиц в качестве hybrid_property. Что-то вроде следующего, где global_id
будет, например, fr-123
или de-456
.
class Product(Base):
product_id = Column(Integer, primary_key=True)
country_id = Column(Integer, ForeignKey('country.id'), nullable=False)
country = relationship('Role', backref='product')
@hybrid_property
def global_id(self):
return self.country.tld + "-" + self.product_id
Это хорошо работает для простых запросов, но когда я пытаюсь выполнить поиск с использованием LIKE
, я получаю ошибка:
AttributeError: Ни объект «InstrumentedAttribute», ни объект «Comparator», связанный с Product.country, не имеют атрибута «tld»
Я считаю, что мне нужно создать expression
метод, который справится с этим - но я не уверен, какую форму нужно принять этому выражению!
Также будет иметь значение, если country.tld
также будет hybrid_property
?