По сути, я был пытаюсь установить связь между двумя объектами: пользователем и тренировкой.
Код: Выделить всё
from sqlalchemy import Integer,VARCHAR,TIMESTAMP
from sqlalchemy.orm import mapped_column,relationship
from sqlalchemy.sql import func
from app.schemas.baseschema import Base
class User(Base):
__tablename__="users"
id=mapped_column(Integer,primary_key=True,autoincrement=True)
username=mapped_column(VARCHAR(255),unique=True,nullable=False)
email=mapped_column(VARCHAR(50),unique=True,nullable=False)
created_at=mapped_column(TIMESTAMP(timezone=True),default=func.current_timestamp())
updated_at=mapped_column(TIMESTAMP(timezone=True))
password_hash=mapped_column(VARCHAR(255),nullable=False)
workouts=relationship("Workout",back_populates="user")
Код: Выделить всё
from sqlalchemy import Integer,DATE,TEXT,ForeignKey
from sqlalchemy.orm import mapped_column,relationship
from sqlalchemy.sql import func
from app.schemas.baseschema import Base
from sqlalchemy.schema import ForeignKeyConstraint
class Workout(Base):
__tablename__="workouts"
id=mapped_column(Integer,primary_key=True,autoincrement=True)
date=mapped_column(DATE,default=func.current_date)
notes=mapped_column(TEXT)
user_id=mapped_column(Integer,ForeignKey("users.id"),nullable=False)
user=relationship("User",back_populates="workouts")
InvalidRequestError("При инициализации картографа Mapper[User(users )], выражению «Тренировка» не удалось найти имя («Тренировка»), рассмотрите возможность добавления этого отношения () к классу после обоих зависимых классов. были определено.").
Может ли кто-нибудь помочь мне определить проблему? На мой взгляд, существует класс Workout и есть пользовательское поле. Я никогда не использовал алхимию sql, а также новичок в Python.
Я проверил оба класса, чтобы убедиться, что я неправильно написал взаимосвязь, но мне показалось, что все в порядке. Я также пытался сравнить другие ответы, приведенные здесь, на ту же проблему, и пытался сопоставить их с моей ситуацией, но мне это не удалось
Подробнее здесь: https://stackoverflow.com/questions/793 ... initialize