多対多の関係でリンクされた2つのモデルのデータを作成するAPIエンドポイントを作成します。これらのモデルがUser
とGroup
であるとします。M2MでデータをPOSTする方法は?
要件:
- どちらの関与のモデルがまだ存在していないので、私はそれらを記述するために
pk
を使用することはできません。 - エンドポイントは、必要な数のユーザー/グループを作成できます。
それらのモデルの間の関係は、(ユーザがN個のグループにすることができ、すなわち、そのグループが1人のユーザに関連することができる。)、1-> Nであったであろう、溶液は自明であったであろう場合:
'user1': {'name': "robert",
'groups': [{'name': 'group1'}, {'name': 'group2'}]
}
'user2': {'name': "jean",
'groups': [{'name': 'group3'}, {'name': 'group4'}]
}
しかし、M2Mのように、どうすればいいのですか?ネストは動作しません。この場合
'user1': {'name': "robert",
'groups': [{'name': 'group1'}, {'name': 'group2'}]
}
'user2': {'name': "jean",
'groups': [{'name': 'group2'}, {'name': 'group3'}]
}
は、サーバはおそらく、私は自分自身が二度1つのオブジェクトを指定しようとしてrepetingてる代わりに3プラスの4グループを作成しようとします。
ここで、グループオブジェクトは単純なモデルですが、私の実際のケースでは、オブジェクトは複数レベルの入れ子を持つ複雑なオブジェクトなので、繰り返しはできません。
これをどのように解決しますか? 私が覚えている唯一の解決策は、1つではなく2つのHTTP呼び出しを行うことです。
注:私はDjangoとDjango Rest Frameworkを使用しています。
おかげで、しかし決して、グループ名は一意である必要があります。私はこの例を選びましたが、それは簡単に思えましたが、私の場合は名前でオブジェクトを識別できません.PKSが必要です。 –