Ich benutze Liste Serializer von vielen = True. Die create-Methode läuft einwandfrei, aber ich kann den Ablauf der benutzerdefinierten Update-Methode des Listen-Serialisierers in der Dokumentation des django rest framework nicht verstehen. Die Verwendung der Basis des Listen-Serialisierers ist klar, aber wenn ich es in Code verwende, ist der Ablauf nicht verständlich. Ich verstehe nicht, welches Buch in der vierten Zeile heißt. Was ist Buch? In der Dokumentation wird auch gefragt, ob dem Instanz-Serializer ein explizites ID-Feld hinzugefügt werden soll. Das standardmäßig implizit generierte ID-Feld ist als read_only gekennzeichnet. Suchen, um zu verstehen, was Dokumentation sagt und wie man es implementiert. Der Kontext aus der Dokumentation ist unten angegeben.Nicht in der Lage, den Ablauf der Liste Serializer-Update in Django Rest Framework zu verstehen
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