6

最近、アプリケーションに debug_toolbar をインストールし、クエリが 2 回実行されていることを報告しました。

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 に答える