From 711674412b17f9990aa1047652e602077b1fc67a Mon Sep 17 00:00:00 2001 From: Serkan Hosca Date: Fri, 5 Jan 2018 12:08:28 -0500 Subject: [PATCH] Add model_class to build_field --- rest_witchcraft/serializers.py | 4 ++-- tests/test_serializers.py | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/rest_witchcraft/serializers.py b/rest_witchcraft/serializers.py index cfd709e..7d26cde 100644 --- a/rest_witchcraft/serializers.py +++ b/rest_witchcraft/serializers.py @@ -324,7 +324,7 @@ def get_fields(self): source = self._extra_kwargs.get(field_name, {}).get('source') or field_name - _fields[field_name] = self.build_field(source, info, depth) + _fields[field_name] = self.build_field(source, info, self.model, depth) return _fields @@ -424,7 +424,7 @@ def get_extra_kwargs(self): return extra_kwargs - def build_field(self, field_name, info, nested_depth): + def build_field(self, field_name, info, model_class, nested_depth): """ Return a field or a nested serializer for the field name """ diff --git a/tests/test_serializers.py b/tests/test_serializers.py index 9900792..2799126 100644 --- a/tests/test_serializers.py +++ b/tests/test_serializers.py @@ -351,7 +351,7 @@ class Meta: serializer = VehicleSerializer() info = model_info(Vehicle) - field = serializer.build_field(Vehicle.id.key, info, 0) + field = serializer.build_field(Vehicle.id.key, info, Vehicle, 0) self.assertEqual(field.help_text, Vehicle.id.doc) self.assertEqual(field.label, 'Id') @@ -370,7 +370,7 @@ class Meta: serializer = VehicleSerializer() info = model_info(Vehicle) - field = serializer.build_field(Vehicle.name.key, info, 0) + field = serializer.build_field(Vehicle.name.key, info, Vehicle, 0) self.assertEqual(field.help_text, Vehicle.name.doc) self.assertEqual(field.label, 'Name') @@ -389,7 +389,7 @@ class Meta: serializer = VehicleSerializer() info = model_info(Vehicle) - field = serializer.build_field(Vehicle.type.key, info, 0) + field = serializer.build_field(Vehicle.type.key, info, Vehicle, 0) self.assertEqual(field.help_text, Vehicle.type.doc) self.assertEqual(field.label, 'Type') @@ -408,7 +408,7 @@ class Meta: serializer = VehicleSerializer() info = model_info(Vehicle) - field = serializer.build_field(Vehicle.paint.key, info, 0) + field = serializer.build_field(Vehicle.paint.key, info, Vehicle, 0) self.assertEqual(field.help_text, Vehicle.paint.doc) self.assertEqual(field.label, 'Paint') @@ -446,7 +446,7 @@ class Meta: serializer = VehicleSerializer() info = model_info(Vehicle) - field = serializer.build_field(Vehicle.engine.key, info, 0) + field = serializer.build_field(Vehicle.engine.key, info, Vehicle, 0) self.assertIsInstance(field, CompositeSerializer) self.assertEqual(len(field.fields), 4) @@ -475,7 +475,7 @@ class Meta: serializer = VehicleSerializer() info = model_info(Vehicle) - field = serializer.build_field('lower_name', info, 0) + field = serializer.build_field('lower_name', info, Vehicle, 0) self.assertIsInstance(field, fields.ReadOnlyField) @@ -492,7 +492,7 @@ class Meta: info = model_info(Vehicle) with self.assertRaises(ImproperlyConfigured): - serializer.build_field('abcde', info, 0) + serializer.build_field('abcde', info, Vehicle, 0) def test_build_one_to_many_relationship_field(self): @@ -505,7 +505,7 @@ class Meta: serializer = VehicleSerializer() info = model_info(Vehicle) - nested_serializer = serializer.build_field(Vehicle.owner.key, info, 0) + nested_serializer = serializer.build_field(Vehicle.owner.key, info, Vehicle, 0) self.assertIsNotNone(nested_serializer) self.assertIsInstance(nested_serializer, ModelSerializer) @@ -523,7 +523,7 @@ class Meta: serializer = VehicleSerializer() info = model_info(Vehicle) - nested_serializer = serializer.build_field(Vehicle.owner.key, info, 0) + nested_serializer = serializer.build_field(Vehicle.owner.key, info, Vehicle, 0) self.assertIsNotNone(nested_serializer) self.assertIsInstance(nested_serializer, ModelSerializer)