class CustomSerializer(ObjectSerializer): first_name = Field() full_name = Field() age = Field() last_name = Field() class Meta: preserve_field_order = True
def default_fields(self, serialize, obj=None, data=None, nested=False): """ Given an object, return the default set of fields to serialize. For ObjectSerializer this should be the set of all the non-private object attributes. """ if not serialize: raise Exception('ObjectSerializer does not support deserialization') ret = SortedDict() attrs = [key for key in obj.__dict__.keys() if not(key.startswith('_'))] for attr in sorted(attrs): if nested: field = self.__class__() else: field = Field() field.initialize(parent=self) ret[attr] = field return ret
def default_fields(self, serialize, obj=None, data=None, nested=False): """ Given an object, return the default set of fields to serialize. For ObjectSerializer this should be the set of all the non-private object attributes. """ if not serialize: raise Exception( 'ObjectSerializer does not support deserialization') ret = SortedDict() attrs = [ key for key in obj.__dict__.keys() if not (key.startswith('_')) ] for attr in sorted(attrs): if nested: field = self.__class__() else: field = Field() field.initialize(parent=self) ret[attr] = field return ret
class PersonSerializer(Serializer): full_name = Field() siblings = SiblingsSerializer()
class SiblingsSerializer(ObjectSerializer): full_name = Field() class Meta: fields = ('full_name', )
class CustomSerializer(ObjectSerializer): full_name = Field() is_child = Field() class Meta: fields = ('full_name', 'is_child')
class CustomSerializer(ObjectSerializer): full_name = Field() class Meta: fields = ('full_name', 'age')
class Family(Object): family = Custom() count = Field()
class Custom(Object): name = Field() age = Field()