[解決済み] Django Rest Frameworkで複数のモデルインスタンスを作成するには?
2023-02-14 13:33:30
質問
Django Rest Framework を使って、1回の API 呼び出しで複数のインスタンスを保存・更新したいです。例えば、複数の先生を持つことができる "Classroom" モデルがあるとします。もし私が複数の教師を作成し、後で彼らの教室の番号をすべて更新したいとしたら、どのようにすればいいでしょうか?私はそれぞれの教師のためにAPIコールを行う必要がありますか?
現在、ネストしたモデルを保存できないことは知っていますが、教師レベルで保存できるかどうかを知りたいです。 ありがとうございます!
どのように解決するのですか?
これは少し前に質問されたものですが、自分で解決しようとしているときに見つけました。
それは、もしあなたが
many=True
を渡すと、複数のオブジェクトを受け入れることができることがわかります。
これについては ここで django rest framework docs にあります。
私の場合、ビューはこんな感じでした。
class ThingViewSet(viewsets.ModelViewSet):
"""This view provides list, detail, create, retrieve, update
and destroy actions for Things."""
model = Thing
serializer_class = ThingSerializer
シリアライザのインスタンスを直接制御するために、わざわざ定型文を書いて
many=True
を渡すだけで良いので、シリアライザークラスの中で
__init__
をオーバーライドしています。
class ThingSerializer(serializers.ModelSerializer):
def __init__(self, *args, **kwargs):
many = kwargs.pop('many', True)
super(ThingSerializer, self).__init__(many=many, *args, **kwargs)
class Meta:
model = Thing
fields = ('loads', 'of', 'fields', )
このビューのリストURLにデータをフォーマットでポストする。
[
{'loads':'foo','of':'bar','fields':'buzz'},
{'loads':'fizz','of':'bazz','fields':'errrrm'}
]
これらの詳細で2つのリソースが作成されました。これはいい感じでした。
関連
-
6.5、Django - モデルでJSONFieldを使用してJSONフィールドでMySQLテーブルを作成する
-
[解決済み] djangoでモデルオブジェクトを一括作成する
-
[解決済み】djangoのビジネスロジックとデータアクセスの分離
-
[解決済み] Django REST フレームワーク: 非モデルシリアライザー
-
[解決済み] DjangoのRestフレームワークでレスポンスに仲介(モデル経由)を含める。
-
[解決済み] DjangoでSELECT COUNT(*) GROUP BYとORDER BYを行うにはどうすればよいですか?
-
[解決済み] django-rest-framework のシリアライザーを使って外部キー値を取得する
-
[解決済み] ChoiceFieldを使ったDjangoのRestフレームワーク
-
[解決済み] Django rest フレームワークのネストされた自己参照オブジェクト
-
[解決済み] Django REST フレームワークでユーザーを登録するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ユニコードオブジェクトはハッシュ化する前にエンコードする必要がある問題を解決
-
[解決済み] request.GETでURLパラメータを取得する
-
[解決済み] Django South - テーブルはすでに存在する
-
[解決済み] Django は単一のモデルに対してデータをダンプしますか?
-
[解決済み] Django ManyToMany filter()
-
[解決済み] models.pyでDjangoの設定変数を参照するには?
-
[解決済み] django で複数のオブジェクトを削除する
-
[解決済み] Docker-Compose使用時にDjangoデータベースのマイグレーションをどのように行うか?
-
[解決済み] Django が ManyToMany リレーションシップからオブジェクトを取り除く
-
[解決済み] django のユニットテストを複数のファイルに分散させるには?