messages
у user'a может быть много messages или не быть вообще
как это описать правильно?
если нет messages - нужно отдавать в объекте User.messages пустой лист
class User(Base):
__tablename__ = "user"
id = Column(BigInteger, primary_key=True, unique=True, autoincrement=False)
name = Column(String, nullable=False)
messages = relationship("Message", backref='user')
class Message(Base):
__tablename__ = "message"
id = Column(BigInteger, primary_key=True, unique=True, autoincrement=true)
user_id = Column(ForeignKey("user.id"), nullable=False)
text = Column(Text, nullable=False)
Ошибка:
sqlalchemy.orm.exc.DetachedInstanceError: Parent instance <User at 0x1e0c9bde530> is not bound to a Session; lazy load operation of attribute 'messages' cannot proceed (Background on this error at: https://sqlalche.me/e/14/bhk3)
Инициализация сессии:
async_sessionmaker = sessionmaker(
engine, expire_on_commit=False, class_=AsyncSession
)
Добавляю нового пользователя так:
await session.merge(User(
id=id,
name=name
))
await session.commit()
С алхимией в https://t.me/sqlalchemy_help
Обсуждают сегодня