First Check
Commit to Help
Example Code
#!/usr/bin/env python3fromtypingimportOptional, Anyimportsqlalchemyfromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemy.ext.mutableimportMutableDict, MutableSetfromsqlalchemy.ormimportsessionmakerfromsqlalchemyimportJSON, ColumnfromsqlmodelimportSQLModel, Field, create_engine, RelationshipSession=sessionmaker()
Base=declarative_base()
classBaseTrack(SQLModel):
title: strclassTrack(BaseTrack, table=True):
id: Optional[int] =Field(default=None, primary_key=True)
title: intalbum_id: Optional[int] =Field(default=None, foreign_key="album.id")
album: "Album"=Relationship(back_populates="tracks")
classBaseAlbum(SQLModel):
tracks: list[BaseTrack]
classAlbum(BaseAlbum, table=True):
id: Optional[int] =Field(default=None, primary_key=True)
tracks: Optional[list[Track]] =Relationship(back_populates="album")
engine=create_engine("sqlite:///:memory:")
Session.configure(bind=engine)
SQLModel.metadata.create_all(engine)
session=Session()
track=Track(id=1, title=2, album_id=1, album=Album(id=1))
session.add(track)
session.commit()Description
The above code gives the following error:
Traceback (mostrecentcalllast):
File"/home/jacob/src/Moe/test_custom.py", line31, in<module>classAlbum(BaseAlbum, table=True):
File"/home/jacob/src/Moe/.venv/lib/python3.9/site-packages/sqlmodel/main.py", line293, in__new__col=get_column_from_field(v)
File"/home/jacob/src/Moe/.venv/lib/python3.9/site-packages/sqlmodel/main.py", line421, inget_column_from_fieldsa_type=get_sqlachemy_type(field)
File"/home/jacob/src/Moe/.venv/lib/python3.9/site-packages/sqlmodel/main.py", line414, inget_sqlachemy_typeraiseValueError(f"The field {field.name} has no matching SQLAlchemy type")
ValueError: ThefieldtrackshasnomatchingSQLAlchemytypeBecause I'm overriding tracks to be a column in my actual database class, this should not error.
Operating System
Linux
Operating System Details
No response
SQLModel Version
0.08
Python Version
3.9.13
Additional Context
Looks to have been caused by #18
First Check
Commit to Help
Example Code
Description
The above code gives the following error:
Because I'm overriding tracks to be a column in my actual database class, this should not error.
Operating System
Linux
Operating System Details
No response
SQLModel Version
0.08
Python Version
3.9.13
Additional Context
Looks to have been caused by #18