-
-
Notifications
You must be signed in to change notification settings - Fork 698
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Why does a SQLModel class with table=True
not validate data ?
#453
Comments
To guess, when used as a table object, there is no verification process because it is used to map data that has already been verified in database. I've asked the same question before, but I'm just using |
I do understand that too, reads from database don't need validation. But writes do. Nevertheless it's not really clear in the documentation. |
I think this is answered here: #52 (comment) For future reference, I found this while looking for why |
This feature/bug should be fully documented, as I (and many others) expect the SQL model to validate data. Only after doing a lot of digging to find out why one of my field_validator wasn't working did I come across this GitHub issue. |
I agree - this just totally threw me off. I expected it to be fully validating my table data. why bother inheriting from BaseModel at all if not.
|
completely annoying bug. I've lost half a day trying to understand what was happening. I'll reconsider if SQLModel is actually the way to go. Thank you, guys! |
This was also very surprising to me. Looks like this PR may fix the issue, although it's unclear if it's the right approach. |
when update new version ? |
First Check
Commit to Help
Example Code
Description
When creating a SQLModel class instance, I thought that I'd have all the advantages of pydantic and SQLAlchemy classes toghether.
I was quite surprised when I realized that SQLModel classes created with
table=True
do not validate data as a pydantic class would do (see my example code).Having read about all SQLModel documentation, I didn't find anywhere this is stated.
Especially in https://sqlmodel.tiangolo.com/tutorial/fastapi/multiple-models/ it would make sense to explain that a
table=True
won't do data validation as a pydantic class would do.Maybe I did not understand the purpose of SQLModel enough, but this is quite disturbing for me.
I think it would be really nice to update the documentation regarding this particular point.
Operating System
Windows
Operating System Details
No response
SQLModel Version
0.0.8
Python Version
Python 3.10.7 x64
Additional Context
PS: Sorry, I'm comming here from Tortoise-ORM, and it's my first time using SQLModel, so I cannot guarantee that I will be quite helpful resolving issues here yet ;) I'll do my best.
The text was updated successfully, but these errors were encountered: