queryset = Users.objects.all()
for user in queryset:
users.userinfo
--> 해당 예시에선 초기 queryset을 선언했지만 for문을 돌면서 계속해서 새롭게 sql을 쏜다.(user의 수만큼 sql이 쌓인다)
Queryset은 1개의 쿼리와 0~N개의 추가쿼리(셋)으로 구성되어있다.
select_related & prefetch_related(역방향 참조)
Model.objests.filter(조건절)
.select_related('정방향 참조 필드')
.prefetch_related('역방향 참조 필드')
select * from 'Model' m
(inner or left outer) join '정방향 참조 필드' r on m.r_id=r.id
where 조건절
select * from 역방향 참조 필드 where id in (첫번째 쿼리 결과 id 리스트)
from django.test.utils import CaptureQueriesContext
from rest_framework.test import APIClient