Example #1
0
    def serialize(self, fields=None, ignore_serializers=None):
        if not fields:
            fields = self.opts.publish_fields
        if not self.instance:
            return None

        data = self.get_object_map_data()

        # Set all the ids for related models
        # so the datamapper can find the connection
        data.update(get_id_mappings(self))

        # Serialize the fields
        for field in fields:
            data[field] = self._serialize_value(field, ignore_serializers)

        custom_serializer_functions = self._get_custom_field_serializers()
        for custom_function, name in custom_serializer_functions:
            serializer = getattr(self, name, None)
            if serializer:
                serializer = get_serializer(serializer, self)
                data[name] = custom_function(self.instance, serializer)
            else:
                data[name] = custom_function(self.instance)

        return data
    def serialize(self, fields=None, ignore_serializers=None):
        if not fields:
            fields = self.opts.publish_fields
        if not self.instance:
            return None

        data = self.get_object_map_data()

        # Set all the ids for related models
        # so the datamapper can find the connection
        data.update(get_id_mappings(self))

        # Serialize the fields
        for field in fields:
            data[field] = self._serialize_value(field, ignore_serializers)

        custom_serializer_functions = self._get_custom_field_serializers()
        for custom_function, name in custom_serializer_functions:
            serializer = getattr(self, name, None)
            if serializer:
                serializer = get_serializer(serializer, self)
                data[name] = custom_function(self.instance, serializer)
            else:
                data[name] = custom_function(self.instance)

        return data
Example #3
0
 def __init__(self, *args, **kwargs):
     if isinstance(self.serializer_class, str):
         self.serializer_class = get_serializer(self.serializer_class, self)
     self._pre_save_state = dict()
     super(SelfPublishModel, self).__init__(*args, **kwargs)
     self._serializer = self.serializer_class(instance=self)
     self._set_pre_save_state()
Example #4
0
 def get_related_serializers(cls):
     possible_serializers = [k for k in cls.__dict__.keys() if not k.startswith('_') and not k == 'Meta']
     serializers = []
     for possible_serializer in possible_serializers:
         val = getattr(cls, possible_serializer)
         if isinstance(val, str):
             val = get_serializer(val, cls)
         if hasattr(val, 'serialize'):
             serializers.append((val, possible_serializer))
     return serializers
Example #5
0
 def get_related_serializers(cls):
     possible_serializers = [k for k in cls.__dict__.keys() if not k.startswith('_') and not k == 'Meta']
     serializers = []
     for possible_serializer in possible_serializers:
         val = getattr(cls, possible_serializer)
         if isinstance(val, str):
             val = get_serializer(val, cls)
         if hasattr(val, 'serialize'):
             serializers.append((val, possible_serializer))
     return serializers
Example #6
0
 def _get_related_serializer(self, key):
     serializer = getattr(self, key, None)
     if isinstance(serializer, str):
         return get_serializer(serializer, self.__class__)
     return serializer
 def _get_related_serializer(self, key):
     serializer = getattr(self, key, None)
     if isinstance(serializer, str):
         return get_serializer(serializer, self.__class__)
     return serializer