sqlmodel icon indicating copy to clipboard operation
sqlmodel copied to clipboard

What is the purpose of parse_obj's second argument: "update"?

Open zmievsa opened this issue 2 years ago • 2 comments

First Check

  • [X] I added a very descriptive title to this issue.
  • [X] I used the GitHub search to find a similar issue and didn't find it.
  • [X] I searched the SQLModel documentation, with the integrated search.
  • [X] I already searched in Google "How to X in SQLModel" and didn't find any information.
  • [X] I already read and followed all the tutorial in the docs and didn't find an answer.
  • [X] I already checked if it is not related to SQLModel but to Pydantic.
  • [X] I already checked if it is not related to SQLModel but to SQLAlchemy.

Commit to Help

  • [X] I commit to help with one of those options 👆

Example Code

SomeModel.parse_obj({"one": 2}, {"three": 4})

Description

SQLModel's parse_obj supports the update argument which is not supported by pydantic's BaseModel. However, I do not see it ever used in docs, github issues, or in source code.

Could someone explain why it was added? What was the actual use case? I understand what it does, but I don't understand why it does it.

Operating System

Linux, Windows, macOS, Other

Operating System Details

No response

SQLModel Version

0.0.8

Python Version

3.11

Additional Context

No response

zmievsa avatar Jan 03 '23 21:01 zmievsa

I'm using it in from_orm when get some parameters to create a new object in an API call from a client, but then add more values to the DB type using some logic in my endpoint function.

So am doing this: dbob = dbtype.from_orm(createob, update=additionalvals)

antont avatar Feb 18 '23 18:02 antont

See https://sqlmodel.tiangolo.com/tutorial/fastapi/update-extra-data/#create-a-model-object-with-extra-data

DLukeNelson avatar Mar 04 '24 20:03 DLukeNelson