Don't try to iterate Nonetype objects when serializing

Added test for serializing None in a many=True situation.
This commit is contained in:
Mark Jones 2014-12-19 10:10:08 -06:00
parent 67ae6b2552
commit b8d5d94625
2 changed files with 17 additions and 1 deletions

View File

@ -571,7 +571,10 @@ class BaseSerializer(WritableField):
DeprecationWarning, stacklevel=2)
if many:
if hasattr(obj, '__iter__'):
self._data = [self.to_native(item) for item in obj]
else:
self._data = []
else:
self._data = self.to_native(obj)

View File

@ -13,3 +13,16 @@ class EmptySerializerTestCase(TestCase):
serializer = FooBarSerializer()
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, [])