awtkns / fastapi-crudrouter

A dynamic FastAPI router that automatically creates CRUD routes for your models
https://fastapi-crudrouter.awtkns.com
MIT License
1.34k stars 156 forks source link

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

Open cycledriver opened 1 year ago

cycledriver commented 1 year ago

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
vercel[bot] commented 1 year ago

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] commented 1 year ago

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

@awtkns first needs to authorize it.