diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 18f4d0df6..e1513440c 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -19,7 +19,6 @@ from collections.abc import Mapping from django.core.exceptions import FieldDoesNotExist, ImproperlyConfigured from django.core.exceptions import ValidationError as DjangoValidationError from django.db import models -from django.db.models import DurationField as ModelDurationField from django.db.models.fields import Field as DjangoModelField from django.utils import timezone from django.utils.functional import cached_property @@ -876,6 +875,7 @@ class ModelSerializer(Serializer): models.DateField: DateField, models.DateTimeField: DateTimeField, models.DecimalField: DecimalField, + models.DurationField: DurationField, models.EmailField: EmailField, models.Field: ModelField, models.FileField: FileField, @@ -890,11 +890,10 @@ class ModelSerializer(Serializer): models.TextField: CharField, models.TimeField: TimeField, models.URLField: URLField, + models.UUIDField: UUIDField, models.GenericIPAddressField: IPAddressField, models.FilePathField: FilePathField, } - if ModelDurationField is not None: - serializer_field_mapping[ModelDurationField] = DurationField serializer_related_field = PrimaryKeyRelatedField serializer_related_to_field = SlugRelatedField serializer_url_field = HyperlinkedIdentityField @@ -1585,13 +1584,6 @@ class ModelSerializer(Serializer): return validators -if hasattr(models, 'UUIDField'): - ModelSerializer.serializer_field_mapping[models.UUIDField] = UUIDField - -# IPAddressField is deprecated in Django -if hasattr(models, 'IPAddressField'): - ModelSerializer.serializer_field_mapping[models.IPAddressField] = IPAddressField - if postgres_fields: ModelSerializer.serializer_field_mapping[postgres_fields.HStoreField] = HStoreField ModelSerializer.serializer_field_mapping[postgres_fields.ArrayField] = ListField