我使用list serializer by many = True。创建方法运行完美,但我无法理解django rest框架的文档中的列表序列化器的自定义更新方法的流程。使用列表序列化的基础很明显,但是当我在代码中使用它时,流程是不可理解的。我无法理解第四行中的book.items是什么意思。什么是书?在文档中,它还要求为实例序列化程序添加一个明确的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