Add Serializer._dict_class

This commit is contained in:
Anssi Kääriäinen 2014-10-30 09:50:52 +02:00
parent 9ebaabd6eb
commit 5f3615e939

View File

@ -282,6 +282,8 @@ class SerializerMetaclass(type):
@six.add_metaclass(SerializerMetaclass) @six.add_metaclass(SerializerMetaclass)
class Serializer(BaseSerializer): class Serializer(BaseSerializer):
_dict_class = ReturnDict
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(Serializer, self).__init__(*args, **kwargs) super(Serializer, self).__init__(*args, **kwargs)
@ -297,13 +299,13 @@ class Serializer(BaseSerializer):
def get_initial(self): def get_initial(self):
if self._initial_data is not None: if self._initial_data is not None:
return ReturnDict([ return self._dict_class([
(field_name, field.get_value(self._initial_data)) (field_name, field.get_value(self._initial_data))
for field_name, field in self.fields.items() for field_name, field in self.fields.items()
if field.get_value(self._initial_data) is not empty if field.get_value(self._initial_data) is not empty
], serializer=self) ], serializer=self)
return ReturnDict([ return self._dict_class([
(field.field_name, field.get_initial()) (field.field_name, field.get_initial())
for field in self.fields.values() for field in self.fields.values()
if not field.write_only if not field.write_only
@ -368,7 +370,7 @@ class Serializer(BaseSerializer):
Dict of native values <- Dict of primitive datatypes. Dict of native values <- Dict of primitive datatypes.
""" """
ret = {} ret = {}
errors = ReturnDict(serializer=self) errors = self._dict_class(serializer=self)
fields = [ fields = [
field for field in self.fields.values() field for field in self.fields.values()
if (not field.read_only) or (field.default is not empty) if (not field.read_only) or (field.default is not empty)
@ -397,7 +399,7 @@ class Serializer(BaseSerializer):
""" """
Object instance -> Dict of primitive datatypes. Object instance -> Dict of primitive datatypes.
""" """
ret = ReturnDict(serializer=self) ret = self._dict_class(serializer=self)
fields = [field for field in self.fields.values() if not field.write_only] fields = [field for field in self.fields.values() if not field.write_only]
for field in fields: for field in fields: