mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-04 20:40:14 +03:00
Merge 8c1d93a166
into d34dfc3fac
This commit is contained in:
commit
37acfde6ad
|
@ -446,7 +446,7 @@ class BaseSerializer(WritableField):
|
||||||
if not self._errors:
|
if not self._errors:
|
||||||
into.update(reverted_data)
|
into.update(reverted_data)
|
||||||
else:
|
else:
|
||||||
if value in (None, ''):
|
if value in (None, '') and not self.many:
|
||||||
into[(self.source or field_name)] = None
|
into[(self.source or field_name)] = None
|
||||||
else:
|
else:
|
||||||
# Set the serializer object if it exists
|
# Set the serializer object if it exists
|
||||||
|
|
|
@ -283,6 +283,13 @@ class ReverseNestedOneToManyTests(TestCase):
|
||||||
self.assertFalse(serializer.is_valid())
|
self.assertFalse(serializer.is_valid())
|
||||||
self.assertEqual(serializer.errors, {'sources': [{}, {}, {}, {'name': ['This field is required.']}]})
|
self.assertEqual(serializer.errors, {'sources': [{}, {}, {}, {'name': ['This field is required.']}]})
|
||||||
|
|
||||||
|
def test_one_to_many_create_with_empty_string(self):
|
||||||
|
data = {'id': 1, 'name': 'target-1', 'sources': ''}
|
||||||
|
instance = OneToManyTarget.objects.get(pk=1)
|
||||||
|
serializer = self.Serializer(instance, data=data)
|
||||||
|
self.assertFalse(serializer.is_valid())
|
||||||
|
self.assertEqual(serializer.errors, {'sources': [{'non_field_errors': ['Expected a list of items.']}]})
|
||||||
|
|
||||||
def test_one_to_many_update(self):
|
def test_one_to_many_update(self):
|
||||||
data = {'id': 1, 'name': 'target-1-updated', 'sources': [{'id': 1, 'name': 'source-1-updated'},
|
data = {'id': 1, 'name': 'target-1-updated', 'sources': [{'id': 1, 'name': 'source-1-updated'},
|
||||||
{'id': 2, 'name': 'source-2'},
|
{'id': 2, 'name': 'source-2'},
|
||||||
|
|
Loading…
Reference in New Issue
Block a user