From 58e80f442bca6930e5f413856fefa41c7b599d9e Mon Sep 17 00:00:00 2001 From: Pierre Chiquet Date: Tue, 15 Jun 2021 11:15:07 +0200 Subject: [PATCH] Separated run_child_validation method in ListSerializer --- rest_framework/serializers.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index eae6a0b2e..4f2712fa1 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -627,6 +627,17 @@ class ListSerializer(BaseSerializer): return value + def run_child_validation(self, data): + """ + Run validation on child serializer. + You may need to override this method to support multiple updates. For example: + + self.child.instance = self.instance.get(pk=data['id']) + self.child.initial_data = data + return super().run_child_validation(data) + """ + return self.child.run_validation(data) + def to_internal_value(self, data): """ List of dicts of native values <- List of dicts of primitive datatypes. @@ -665,7 +676,7 @@ class ListSerializer(BaseSerializer): for item in data: try: - validated = self.child.run_validation(item) + validated = self.run_child_validation(item) except ValidationError as exc: errors.append(exc.detail) else: