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
Example #2
0
 def test_reverse_m2m(self):
     reverse_m2m = ReverseM2M.objects.create(number=12)
     m2m = M2M.objects.create(name='test')
     m2m.many.add(reverse_m2m)
     mapping = serializer_tools.get_id_mappings(
         ReverseM2MSerializer(instance=reverse_m2m))
     self.assertEqual(list(mapping['m2m_set']), [m2m.pk])
    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 test_fk(self):
     reverse_fk = ReverseFk.objects.create(name='test')
     fk = Fk.objects.create(number=99, reverse_fk=reverse_fk)
     mapping = serializer_tools.get_id_mappings(FKSerializer(instance=fk))
     self.assertEqual(mapping['reverse_fk'], reverse_fk.pk)
 def test_reverse_m2m(self):
     reverse_m2m = ReverseM2M.objects.create(number=12)
     m2m = M2M.objects.create(name='test')
     m2m.many.add(reverse_m2m)
     mapping = serializer_tools.get_id_mappings(ReverseM2MSerializer(instance=reverse_m2m))
     self.assertEqual(list(mapping['m2m_set']), [m2m.pk])
 def test_reverse_one2one(self):
     ro2o = ReverseO2O.objects.create(bar='another test')
     o2o = O2O.objects.create(foo='test', reverse_o2o=ro2o)
     mapping = serializer_tools.get_id_mappings(ReverseO2OSerializer(instance=ro2o))
     self.assertEqual(mapping['o2o'], o2o.pk)
 def test_reverse_fk(self):
     reverse_fk = ReverseFk.objects.create(name='test')
     fk = Fk.objects.create(number=99, reverse_fk=reverse_fk)
     mapping = serializer_tools.get_id_mappings(ReverseFKSerializer(instance=reverse_fk))
     self.assertEqual(list(mapping['fk_set']), [fk.pk])
Example #8
0
 def test_fk(self):
     reverse_fk = ReverseFk.objects.create(name='test')
     fk = Fk.objects.create(number=99, reverse_fk=reverse_fk)
     mapping = serializer_tools.get_id_mappings(FKSerializer(instance=fk))
     self.assertEqual(mapping['reverse_fk'], reverse_fk.pk)
Example #9
0
 def test_reverse_one2one(self):
     ro2o = ReverseO2O.objects.create(bar='another test')
     o2o = O2O.objects.create(foo='test', reverse_o2o=ro2o)
     mapping = serializer_tools.get_id_mappings(
         ReverseO2OSerializer(instance=ro2o))
     self.assertEqual(mapping['o2o'], o2o.pk)
Example #10
0
 def test_reverse_fk(self):
     reverse_fk = ReverseFk.objects.create(name='test')
     fk = Fk.objects.create(number=99, reverse_fk=reverse_fk)
     mapping = serializer_tools.get_id_mappings(
         ReverseFKSerializer(instance=reverse_fk))
     self.assertEqual(list(mapping['fk_set']), [fk.pk])