MCPcopy Index your code
hub / github.com/tortoise/tortoise-orm / run

Function run

examples/complex_prefetching.py:40–66  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

38
39
40async def run():
41 await Tortoise.init(db_url="sqlite://:memory:", modules={"models": ["__main__"]})
42 await Tortoise.generate_schemas()
43
44 tournament = await Tournament.create(name="tournament")
45 await Event.create(name="First", tournament=tournament)
46 await Event.create(name="Second", tournament=tournament)
47 tournament_with_filtered = (
48 await Tournament.all()
49 .prefetch_related(Prefetch("events", queryset=Event.filter(name="First")))
50 .first()
51 )
52 print(tournament_with_filtered)
53 print(await Tournament.first().prefetch_related("events"))
54
55 tournament_with_filtered_to_attr = (
56 await Tournament.all()
57 .prefetch_related(
58 Prefetch("events", queryset=Event.filter(name="First"), to_attr="to_attr_events_first"),
59 Prefetch(
60 "events", queryset=Event.filter(name="Second"), to_attr="to_attr_events_second"
61 ),
62 )
63 .first()
64 )
65 print(tournament_with_filtered_to_attr.to_attr_events_first)
66 print(tournament_with_filtered_to_attr.to_attr_events_second)
67
68
69if __name__ == "__main__":

Callers 1

Calls 8

PrefetchClass · 0.90
initMethod · 0.45
generate_schemasMethod · 0.45
createMethod · 0.45
firstMethod · 0.45
prefetch_relatedMethod · 0.45
allMethod · 0.45
filterMethod · 0.45

Tested by

no test coverage detected