6

我最近在我的应用程序中安装了 debug_toolbar,它报告查询正在运行两次。

debug_toolbar 报告重复的数据库查询。

SET SQL_AUTO_IS_NULL = 0
Duplicated 2 times.

/Users/siquick/Django/soundshelter/soundshelterapp/views.py in release(128)
  genre = [release['genre'] for release in context_dict['release']]

views.py 中的代码片段是:

        release_list = Releases.objects.filter(id=release_id).values('all_artists','label_no_country','id','title','genre').annotate(cnt=Count('chartsextended'))[:1]

        context_dict['release'] = release_list

        genre = [release['genre'] for release in context_dict['release']]
        label_no_country = [release['label_no_country'] for release in context_dict['release']]
        all_artists = [release['all_artists'] for release in context_dict['release']]
        title = [release['title'] for release in context_dict['release']]

是什么导致了这种重复?我知道这是由这条线引起的,genre = [release['genre'] for release in context_dict['release']]但不确定为什么会这样。

4

1 回答 1

3

发生这种情况是因为,我猜,“流派”也是一种模式。

您应该使用 select_related('genre') 以便只获取它们一次。 https://docs.djangoproject.com/en/dev/ref/models/querysets/#select-related

于 2015-12-17T13:09:50.290 回答