간단한 캐싱 트릭이 실제로 유용할지 여부를 결정하려고합니다. 내가 장고 querysets 효율성을 향상시키기 위해 게으른지만 데이터를 호출 한 후 그들의 쿼리 결과를 저장하는 경우 궁금하네요. 예를 들어django 쿼리는 호출 된 후 결과를 저장합니까?
, 나는 두 가지 모델이있는 경우 :
class Klass1(models.Model):
k2 = models.ForeignKey('Klass2')
class Klass2(models.Model):
# Model Code ...
@property
def klasses(self):
self.klasses = Klass1.objects.filter(k2=self)
return self.klasses
을 그리고 어디 선가 klass_2_instance.klasses[:]
전화, 데이터베이스 액세스 및 쿼리를 반환합니다. klass_2_instance.klasses
을 다시 호출하면 데이터베이스에 두 번째로 액세스 할 것인지 궁금하거나 Django 쿼리가 첫 번째 호출에서 결과를 저장합니까?
'class '대신에'klass'가 끔찍한 것처럼 보였습니다. 'cls'는'class'가 오류를 일으킬 문맥에서 이름이 사용된다면 IMO로가는 길입니다. – ThiefMaster
걱정하지 마시고, 여기 klass를 임의의 이름으로 사용했습니다. 이것은 내가 사용하고있는 실제 모델이 아니라 예제 코드입니다. – Arion