SqlAlchemy, ein oder mehrere Mapper konnten nicht initialisiert werden

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: SqlAlchemy, ein oder mehrere Mapper konnten nicht initialisiert werden

by Guest » 28 Dec 2024, 18:07

Ich weiß, dass diese Frage oft gestellt wurde und glauben Sie mir, ich habe die Antworten überprüft und für mich sieht mein Code gut aus, auch wenn er einen Fehler ausgibt, also ist das nicht der Fall.
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")
Der Fehler, den ich erhalte, ist dieser:

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

Top