mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-05 21:10:13 +03:00
Don't try to iterate Nonetype objects when serializing
Added test for serializing None in a many=True situation.
This commit is contained in:
parent
67ae6b2552
commit
b8d5d94625
|
@ -571,7 +571,10 @@ class BaseSerializer(WritableField):
|
||||||
DeprecationWarning, stacklevel=2)
|
DeprecationWarning, stacklevel=2)
|
||||||
|
|
||||||
if many:
|
if many:
|
||||||
self._data = [self.to_native(item) for item in obj]
|
if hasattr(obj, '__iter__'):
|
||||||
|
self._data = [self.to_native(item) for item in obj]
|
||||||
|
else:
|
||||||
|
self._data = []
|
||||||
else:
|
else:
|
||||||
self._data = self.to_native(obj)
|
self._data = self.to_native(obj)
|
||||||
|
|
||||||
|
|
|
@ -13,3 +13,16 @@ class EmptySerializerTestCase(TestCase):
|
||||||
|
|
||||||
serializer = FooBarSerializer()
|
serializer = FooBarSerializer()
|
||||||
self.assertEquals(serializer.data, {'foo': 0})
|
self.assertEquals(serializer.data, {'foo': 0})
|
||||||
|
|
||||||
|
def test_serializing_none(self):
|
||||||
|
class FooBarSerializer(serializers.Serializer):
|
||||||
|
foo = serializers.IntegerField()
|
||||||
|
bar = serializers.SerializerMethodField('get_bar')
|
||||||
|
|
||||||
|
def get_bar(self, obj):
|
||||||
|
return 'bar'
|
||||||
|
|
||||||
|
serializer = FooBarSerializer(None, many=True)
|
||||||
|
self.assertEquals(serializer.data, [])
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user