sqlalchemy.exc.InvalidRequestError: When initializing mapper Mapper[Users(users)]

33 Views Asked by At

from typing import Optional, List from sqlmodel import SQLModel, Field, Relationship from datetime import date from typing import TYPE_CHECKING

if TYPE_CHECKING: from schemas.task import Tasks from schemas.team import Teams # Adjust the import statement here

class UserBase(SQLModel): name: str = Field(index=True, nullable=False) role: str = Field(nullable=False) DOB: Optional[date] = Field(default=None) # Specify the type of DOB field address: str = Field(nullable=False) email: str = Field(nullable=False) phonenumber: int = Field(unique=True, nullable=False) password: str = Field(nullable=False) team_id: Optional[int] = Field(default=None, foreign_key="teams.id")

class Users(UserBase, table=True): id: Optional[int] = Field(default=None, primary_key=True) team_name: Optional['Teams'] = Relationship(back_populates="users",sa_relationship_kwargs={"lazy": "selectin"}) task_assigned: List['Tasks'] = Relationship(back_populates="user_assigned")

class UserCreate(UserBase): pass

class UserRead(UserBase): id: int

class UserUpdate(UserBase): name: Optional[str] = None role: Optional[str] = None email: Optional[str] = None phonenumber: Optional[int] = None password: Optional[str] = None

from typing import Optional, List from sqlmodel import SQLModel, Field, Relationship from typing import TYPE_CHECKING

if TYPE_CHECKING: from schemas.user import Users from schemas.project import Projects

class TeamBase(SQLModel): Name: str = Field(index=True, nullable=False)

class Teams(TeamBase, table=True): id: Optional[int] = Field(default=None, primary_key=True) users: List['Users'] = Relationship(back_populates="team_name",sa_relationship_kwargs={"lazy": "selectin"}) project_assigned: Optional['Projects'] = Relationship(back_populates="teams_assigned")

class TeamCreate(TeamBase): pass

class TeamRead(TeamBase): id: int

class TeamUpdate(SQLModel): Name: Optional[str] = None

I am trying insert details of the user but i often get this error.I can't figure what the problem is.

File "C:\Users\amird\AppData\Local\pypoetry\Cache\virtualenvs\app-h9epu7I--py3.8\lib\site-packages\sqlalchemy\orm\clsregistry.py", line 519, in _resolve_name self._raise_for_name(name, err) File "C:\Users\amird\AppData\Local\pypoetry\Cache\virtualenvs\app-h9epu7I--py3.8\lib\site-packages\sqlalchemy\orm\clsregistry.py", line 500, in _raise_for_name raise exc.InvalidRequestError( sqlalchemy.exc.InvalidRequestError: When initializing mapper Mapper[Users(users)], expression 'Teams' failed to locate a name ('Teams'). If this is a class name, consider adding this relationship() to the <class 'schemas.user.Users'> class after both dependent classes have been defined.

0

There are 0 best solutions below