Добрый день! Имеется 2 таблицы где, у каждой поле id является зависимым ключом друг на друга.
Имеются модели в declarative base
class Article(MPInsideBase):
"""Модель Article."""
__tablename__ = "wb_ws_article"
id = Column(BigInteger(), ForeignKey(Product.id), unique=True, primary_key=True)
product: Mapped[Product] = Relationship(
remote_side=Product.id, foreign_keys="Article.id",
)
class Product(MPInsideBase):
"""Модель продукта."""
__tablename__ = "wb_products"
id = Column(BigInteger(), unique=True, primary_key=True)
article: Mapped["Article"] = Relationship("Article", back_populates="product")
И код который ими пользуется
async with self.db.session() as session:
print(filter_stmt.get('id'))
stmt = select(Article, Product).join(Product).filter_by(**filter_stmt)
if options:
for option in options:
stmt = stmt.options(option)
result = await session.scalars(stmt)
model = result.one()
product = model.product
print(vars(product))
return model
При запуске получаю следующую ошибку
sqlalchemy.exc.MissingGreenlet: greenlet_spawn has not been called; can't call await_only() here. Was IO attempted in an unexpected place? (Background on this error at: https://sqlalche.me/e/20/xd2s)
Может кто нибудь связывал такие таблицы через sqlalchemy, что бы данные прилетали вместе с Product когда я запрашиваю данные из Article?