Django:クエリセットにデータを追加する

エミュー

私は2つのモデルを持っています:

映画

属性:名前、プロット、評価、release_date、写真

ディレクター

属性:名前、略歴、写真

映画監督のモデルには、多対多の関係があります。

今私のmovies/views.pyファイルに:

def movies_index(request):
    movies = Movie.objects.all()

    for movie in movies:
       movie.directors = movie.directors.all() # tried but in the template it gives me error when accessing by movie.directors   
       # insert directors in every movie object 

    context_data = {
       'movies': movies
    }

    return render(request, 'movies/index.html', context_data)

すべての映画オブジェクトに監督データを挿入したいと思います。結果は次のようになります。

[
  {
    name: "12 Angry Man",
    plot: "bla",
    release_date: "1-2132",
    directors: [
      {
         name: "Quentine",
         bio: "Lodfs"
      },
      {
         name: "Tarantino",
         bio: "Lodsdfs"
      }
    ]
  }
]

どうすればこれを達成できますか?

または、これを行う別のアプローチはありますか?

NB私はDjango1.9、Python2.7を使用しています

e4c5

はい、関連するダイレクタオブジェクトをフェッチするためにさらにN個のクエリをループして実行することを含まない別のアプローチがあります。

prefetch_related

select_relatedと同様の目的があり、どちらも関連オブジェクトへのアクセスによって引き起こされるデータベースクエリの大洪水を阻止するように設計されていますが、戦略はまったく異なります。

select_relatedは、SQL結合を作成し、関連オブジェクトのフィールドをSELECTステートメントに含めることで機能します。このため、select_relatedは、同じデータベースクエリ内の関連オブジェクトを取得します。ただし、「多くの」関係を越えて結合することで生じるはるかに大きな結果セットを回避するために、select_relatedは単一値の関係(外部キーと1対1)に制限されています。

一方、prefetch_relatedは、関係ごとに個別のルックアップを実行し、Pythonで「結合」を実行します。これにより、select_relatedを使用して実行できない、多対多および多対1のオブジェクトをプリフェッチできます。

そう

 Movie.objects.all().prefetch_related('director')

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

django-rest-frameworkクエリセットレスポンスに注釈データを追加する方法

分類Dev

クエリセットデータを別のクエリdjangoに渡す

分類Dev

django-フォームのクエリセットにパラメータを追加する方法

分類Dev

djangoのクエリセットにフィールドを追加する

分類Dev

Djangoクエリセットからデータを抽出する方法

分類Dev

Django:さまざまなモデルのクエリセットデータに動的にアクセスする

分類Dev

Mongodbを使用して、同じクエリ内にデータセットのサマリーヘッダー/フッターを追加する方法

分類Dev

Wagtail(django)で追加のクエリを実行せずにForeignKeyデータにアクセスする方法

分類Dev

Djangoビューページにクエリセットの月と年のドロップダウンリストフィルターを追加する

分類Dev

Django-OPTIONSリクエストを2回送信すると、リクエストメソッドに本文データが追加されます

分類Dev

クエリセットによるデータベースへのSQL呼び出しでクエリされるdjangoフィールドを制限する

分類Dev

Linqを使用してデータセットを動的にクエリする

分類Dev

djangoクエリセットにモデルインスタンスを追加するにはどうすればよいですか?

分類Dev

大きなデータセットに対するクエリ

分類Dev

クエリセット全体を返すことなく、Django のクエリセットからデータをフィルタリングする

分類Dev

1つのデータベースヒットでdjangoクエリセット全体を評価する

分類Dev

クエリセットの関連データを取得する

分類Dev

Djangoのクエリセットにプロパティを追加する

分類Dev

Djangoはクエリセットにフィールドを追加します

分類Dev

追加のフィールドでDjangoクエリセットをフィルタリングするにはどうすればよいですか?

分類Dev

OkHttpリクエストインターセプターにヘッダーを追加する方法

分類Dev

Django-クエリセットを4に分割すると、データベースに多くのヒットが発生します

分類Dev

JSONを介してDjangoデータベースクエリセットをHighchartsに渡す

分類Dev

プリセットクエリを使用してJSONファイルデータにアクセスする-Python

分類Dev

Djangoクエリセット-3番目のモデルからデータを取得する際の問題

分類Dev

Django-FilterSetのフィールドにクエリセットを追加する際の問題

分類Dev

tableadapterをデータセットに追加するときのエラー

分類Dev

Axiosリクエストにデフォルトデータを追加する

分類Dev

Djangoはパンダのデータフレームをクエリセットに変換します

Related 関連記事

  1. 1

    django-rest-frameworkクエリセットレスポンスに注釈データを追加する方法

  2. 2

    クエリセットデータを別のクエリdjangoに渡す

  3. 3

    django-フォームのクエリセットにパラメータを追加する方法

  4. 4

    djangoのクエリセットにフィールドを追加する

  5. 5

    Djangoクエリセットからデータを抽出する方法

  6. 6

    Django:さまざまなモデルのクエリセットデータに動的にアクセスする

  7. 7

    Mongodbを使用して、同じクエリ内にデータセットのサマリーヘッダー/フッターを追加する方法

  8. 8

    Wagtail(django)で追加のクエリを実行せずにForeignKeyデータにアクセスする方法

  9. 9

    Djangoビューページにクエリセットの月と年のドロップダウンリストフィルターを追加する

  10. 10

    Django-OPTIONSリクエストを2回送信すると、リクエストメソッドに本文データが追加されます

  11. 11

    クエリセットによるデータベースへのSQL呼び出しでクエリされるdjangoフィールドを制限する

  12. 12

    Linqを使用してデータセットを動的にクエリする

  13. 13

    djangoクエリセットにモデルインスタンスを追加するにはどうすればよいですか?

  14. 14

    大きなデータセットに対するクエリ

  15. 15

    クエリセット全体を返すことなく、Django のクエリセットからデータをフィルタリングする

  16. 16

    1つのデータベースヒットでdjangoクエリセット全体を評価する

  17. 17

    クエリセットの関連データを取得する

  18. 18

    Djangoのクエリセットにプロパティを追加する

  19. 19

    Djangoはクエリセットにフィールドを追加します

  20. 20

    追加のフィールドでDjangoクエリセットをフィルタリングするにはどうすればよいですか?

  21. 21

    OkHttpリクエストインターセプターにヘッダーを追加する方法

  22. 22

    Django-クエリセットを4に分割すると、データベースに多くのヒットが発生します

  23. 23

    JSONを介してDjangoデータベースクエリセットをHighchartsに渡す

  24. 24

    プリセットクエリを使用してJSONファイルデータにアクセスする-Python

  25. 25

    Djangoクエリセット-3番目のモデルからデータを取得する際の問題

  26. 26

    Django-FilterSetのフィールドにクエリセットを追加する際の問題

  27. 27

    tableadapterをデータセットに追加するときのエラー

  28. 28

    Axiosリクエストにデフォルトデータを追加する

  29. 29

    Djangoはパンダのデータフレームをクエリセットに変換します

ホットタグ

アーカイブ