Settings

Theme

FastAPI Voyager's new feature: application levle ER Diagram

fastapi-voyager.top

2 points by tank-34 2 months ago · 2 comments

Reader

tank-34OP 2 months ago

declare the relationship:

class Story(BaseModel, BaseEntity):

    __pydantic_resolve_relationships__ = [
        Relationship( field='id', target_kls=list[task_schema.Task], loader=task_loader.story_to_task_loader),
        Relationship( field='owner_id', target_kls=user_schema.User, loader=user_loader.user_batch_loader)
    ]

    id: int
    name: str
    owner_id: int
    sprint_id: int

    model_config = ConfigDict(from_attributes=True)
and consume it

class Story1(DefineSubset):

    __subset__ = (BaseStory, ('id', 'name', 'owner_id'))

    tasks: Annotated[list[Task1], LoadBy('id')] = []
    assignee: Annotated[Optional[BaseUser], LoadBy('owner_id')] = None

    related_users: list[BaseUser] = []
    def post_related_users(self, collector=Collector(alias='related_users')):
        return collector.values()
tank-34OP 2 months ago

repo: https://github.com/allmonday/fastapi-voyager

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection