| 75 | |
| 76 | @pytest.mark.asyncio |
| 77 | async def test_prefetch_nested(db): |
| 78 | tournament = await Tournament.create(name="tournament") |
| 79 | event = await Event.create(name="First", tournament=tournament) |
| 80 | await Event.create(name="Second", tournament=tournament) |
| 81 | team = await Team.create(name="1") |
| 82 | team_second = await Team.create(name="2") |
| 83 | await event.participants.add(team, team_second) |
| 84 | fetched_tournaments = ( |
| 85 | await Tournament.all() |
| 86 | .prefetch_related( |
| 87 | Prefetch("events", queryset=Event.filter(name="First")), |
| 88 | Prefetch("events__participants", queryset=Team.filter(name="1")), |
| 89 | ) |
| 90 | .first() |
| 91 | ) |
| 92 | assert len(fetched_tournaments.events[0].participants) == 1 |
| 93 | |
| 94 | |
| 95 | @pytest.mark.asyncio |