()
| 38 | |
| 39 | |
| 40 | async 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 | |
| 69 | if __name__ == "__main__": |
no test coverage detected