用select_related / prefetch_related优化这个Django代码的正确方法是什么?

时间:2013-11-06 18:42:19

标签: django django-select-related

我有一个简单的情况,有两个模型和一个ForeignKey:

class Image(models.Model):
   # Stuff here

   def iotd_date(self):
       iotd = self.image_of_the_day.all()
       if iotd: 
          return iotd[0].date
       return None

class ImageOfTheDay(models.Model):
   date = models.DateField()
   image = models.ForeignKey(Image, related_name = 'iotd')

每当我在模板中执行{{some_image.iotd_date}}时,就会触及数据库。

如何预取该信息?我已经尝试了.select_related('iotd')related_name),但它没有用。

1 个答案:

答案 0 :(得分:0)

我发现:prefetch_related实际上是诀窍。