다음 모델을 가지고 있습니다.Django - select_related()로 쿼리 최적화
class Car(models.Model):
owner = models.ForeignKey('Driver')
class Country(models.Model)
name = models.CharField(max_length=255)
class Driver(models.Model):
name = models.CharField(max_length=255)
age = models.IntegerField()
country = models.ForeignKey('Country')
자동차를 소유 한 운전자의 이름을 선택하고 싶습니다.
Car.objects.all().values('owner__name')
내가이 각 개체에 대해 가입 방지하기 위해, select_related() 메소드를 사용해야합니까, 아니면 값을 암시하기 때문에() 메소드 중복? 같은 방법으로
Car.objects.all().select_related('owner').values('owner__name')
, 내가 원하는,이 시간, 운전자가 자동차를 소유하는 국가의 이름. 어느 것이 최고입니까? 당신의 예에서
.all()
의
Car.objects.all().values('owner__country__name')
Car.objects.all().select_related('owner', 'country').values('owner__country__name')
Car.objects.all().select_related('owner__country').values('owner__country__name')
당신이'Driver.objects.filter을한다고 가정 마지막 부분 (car__isnull = 거짓, ...)'하지만 질문 조금 넓어서 암시 적 조인에 관한 첫 번째 질문으로 제한해야합니다 – Sayse
감사합니다. select_related()를 사용하여 범위를 줄이기 위해 질문을 편집합니다. – srjjio