mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-05 04:50:12 +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)
|
||||
|
||||
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:
|
||||
self._data = self.to_native(obj)
|
||||
|
||||
|
|
|
@ -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, [])
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user