fastapi-crudrouter icon indicating copy to clipboard operation
fastapi-crudrouter copied to clipboard

[sqlalchemy] allow create/update with object for one/many 2 many

Open cycledriver opened this issue 3 years ago • 3 comments

For one-2-many and many-2-many relationships, allow the create and update routes to accept a partial object in the foreign key attribute. For example:

client.post("/heros", json={
    "name": Bob,
    "team": {"name": "Avengers"}
}

Assuming there is already a team called Avengers, Bob will be created, the Team with name "Avengers" will be looked up and used to populate Bob's team_id foreign key attribute.

The only setup required is for the input model for the foreign object to specify the Table class that can be used to lookup the object.

For example:

class Team(Base):
    """Team DTO."""

    __tablename__ = "teams"

    id = Column(Integer, primary_key=True, index=True)
    name = Column(String, unique=True)

class TeamUpdate(Model):
    name: str

    class Meta:
        orm_model = Team

cycledriver avatar Oct 14 '22 02:10 cycledriver

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated
fastapi-crudrouter ❌ Failed (Inspect) Oct 14, 2022 at 0:33AM (UTC)

vercel[bot] avatar Oct 14 '22 02:10 vercel[bot]

Someone is attempting to deploy a commit to a Personal Account owned by @awtkns on Vercel.

@awtkns first needs to authorize it.

vercel[bot] avatar Jan 28 '23 07:01 vercel[bot]