J'utilise la liste Serializer par many = True. La méthode create fonctionne parfaitement mais je suis incapable de comprendre le flux de la méthode de mise à jour personnalisée du sérialiseur de liste dans la documentation du framework de repos django. L'utilisation de la base de liste sérialiseur est claire mais quand je l'utilise dans le code, le flux n'est pas compréhensible. Je ne suis pas capable de comprendre ce que book.items signifie dans la quatrième ligne. Quel est le livre? Dans la documentation, il est également demandé d'ajouter un champ id explicite au sérialiseur d'instance. Le champ d'ID implicite généré par défaut est marqué comme read_only. Vous cherchez à comprendre ce que dit la documentation et comment la mettre en œuvre. Le contexte de la documentation est donné ci-dessous.Impossible de comprendre le flux de la mise à jour du sérialiseur de liste dans le cadre de repos django
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