Django在渲染模板之前形成急切的加载相关对象

时间:2014-06-16 07:26:29

标签: python django django-forms django-templates

渲染模板时遇到性能问题,因为当我渲染N个表单时,对于每个表单,它会通过带有查询的外键加载相关对象。

这是我的情况

我有一个属于玩家模型的统计模型(1到多个)。在change_view模板中,我呈现N个统计表单,并为每个表单,还有相关的Player(名字,姓氏)。

以下是简单统计表格

class StatisticForm(ModelForm):
   class Meta:
     model = Statistic

如何以统计形式急切加载播放器?

1 个答案:

答案 0 :(得分:0)

您可以使用ModelFormSet解决此问题,正如您所说:“我渲染N个统计表格......”并立即获取相关对象:

  
    
      

formset = StatisticFormSet(queryset = Statistic.objects.select_related('player')。all())

    
  

请注意,此处的关键不是formset本身,而是在创建查询集时使用.select_related('player')。 ModelFormSet用法只是一个更容易处理所有这些表单的建议。

希望有所帮助。