リストシリアライザをmany = Trueで使用しています。 createメソッドは完全に実行されていますが、私はdjango rest frameworkのドキュメントでlist serializerのカスタム更新メソッドの流れを理解することができません。リストシリアライザのベースを使用することは明らかですが、コードで使用しているときは、そのフローは理解できません。私は4行目で何が意味するのか理解できません。本は何ですか?ドキュメントでは、明示的なidフィールドをインスタンスシリアライザに追加するよう求めています。デフォルトの暗黙的に生成されるIDフィールドは、read_onlyとしてマークされます。ドキュメントの内容とその実装方法を理解しています。ドキュメントの文脈は以下の通りです。django restフレームワークにおけるリストシリアライザの更新の流れを理解できません
class BookListSerializer(serializers.ListSerializer):
def update(self, instance, validated_data):
# Maps for id->instance and id->data item.
book_mapping = {book.id: book for book in instance}
data_mapping = {item['id']: item for item in validated_data}
# Perform creations and updates.
ret = []
for book_id, data in data_mapping.items():
book = book_mapping.get(book_id, None)
if book is None:
ret.append(self.child.create(data))
else:
ret.append(self.child.update(book, data))
# Perform deletions.
for book_id, book in book_mapping.items():
if book_id not in data_mapping:a
book.delete()
return ret