Im Grunde war ich das Ich versuche, eine Beziehung zwischen zwei Entitäten einzurichten: Benutzer und Training.
Code: Select all
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")
Code: Select all
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("Bei der Initialisierung des Mappers Mapper[User(users )], Ausdruck „Workout“ konnte keinen Namen finden („Workout“). Wenn es sich um einen Klassennamen handelt, sollten Sie erwägen, diese Beziehung() zur Klasse nach beiden abhängigen Klassen hinzuzufügen wurden definiert.")
Kann mir jemand helfen, das Problem zu identifizieren? Für mich sieht es so aus, als gäbe es die Workout-Klasse und sie hätte ein Benutzerfeld. Ich habe noch nie SQL Alchemy verwendet und bin auch neu in Python.
Ich habe beide Klassen überprüft, um zu sehen, ob ich die Beziehung falsch geschrieben habe, aber für mich sah es gut aus. Ich habe auch versucht, andere hier gegebene Antworten auf das gleiche Problem zu vergleichen und sie in einen Zusammenhang mit meiner Situation zu bringen, aber es ist mir nicht gelungen