diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 562e52b22..0c54f9741 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1681,7 +1681,7 @@ class ListField(Field): try: result.append(self.child.run_validation(item)) except ValidationError as e: - errors[idx] = e.detail + errors[str(idx)] = e.detail if not errors: return result diff --git a/tests/test_fields.py b/tests/test_fields.py index 9a1d04979..470d17a76 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1880,7 +1880,7 @@ class TestListField(FieldValues): ] invalid_inputs = [ ('not a list', ['Expected a list of items but got type "str".']), - ([1, 2, 'error', 'error'], {2: ['A valid integer is required.'], 3: ['A valid integer is required.']}), + ([1, 2, 'error', 'error'], {'2': ['A valid integer is required.'], '3': ['A valid integer is required.']}), ({'one': 'two'}, ['Expected a list of items but got type "dict".']) ] outputs = [ @@ -1916,9 +1916,9 @@ class TestNestedListField(FieldValues): ([[]], [[]]) ] invalid_inputs = [ - (['not a list'], {0: ['Expected a list of items but got type "str".']}), - ([[1, 2, 'error'], ['error']], {0: {2: ['A valid integer is required.']}, 1: {0: ['A valid integer is required.']}}), - ([{'one': 'two'}], {0: ['Expected a list of items but got type "dict".']}) + (['not a list'], {'0': ['Expected a list of items but got type "str".']}), + ([[1, 2, 'error'], ['error']], {'0': {'2': ['A valid integer is required.']}, '1': {'0': ['A valid integer is required.']}}), + ([{'one': 'two'}], {'0': ['Expected a list of items but got type "dict".']}) ] outputs = [ ([[1, 2], [3]], [[1, 2], [3]]),