diff --git a/rest_framework_dataclasses/serializers.py b/rest_framework_dataclasses/serializers.py index 19db4dd..aecc2b2 100644 --- a/rest_framework_dataclasses/serializers.py +++ b/rest_framework_dataclasses/serializers.py @@ -502,6 +502,10 @@ def build_dataclass_field(self, field_name: str, type_info: TypeInfo) -> Seriali except KeyError: field_class = self.serializer_dataclass_field + # allow user to map a dataclass to a regular serializer Field class + if not issubclass(field_class, DataclassSerializer): + return self.build_standard_field(field_name, type_info) + field_kwargs = {'dataclass': type_info.base_type, 'many': type_info.is_many} diff --git a/tests/test_field_generation.py b/tests/test_field_generation.py index 566004a..c242659 100644 --- a/tests/test_field_generation.py +++ b/tests/test_field_generation.py @@ -127,6 +127,10 @@ def test_nested(self): DataclassSerializer.serializer_field_mapping[refclass] = subclassed_serializer self.check_field(refclass, subclassed_serializer, {'dataclass': refclass, 'many': False}) + # customizing the dataclass serializer by putting regular Field in the field mapping + DataclassSerializer.serializer_field_mapping[refclass] = fields.CharField + self.check_field(refclass, fields.CharField, {}) + def test_relational(self): django.setup()