diff --git a/rest_framework_gis/serializers.py b/rest_framework_gis/serializers.py index e42852e8..44765d03 100644 --- a/rest_framework_gis/serializers.py +++ b/rest_framework_gis/serializers.py @@ -151,7 +151,10 @@ def get_properties(self, instance, fields): if field.write_only: continue value = field.get_attribute(instance) - properties[field.field_name] = field.to_representation(value) + value_repr = None + if value is not None: + value_repr = field.to_representation(value) + properties[field.field_name] = value_repr return properties diff --git a/tests/django_restframework_gis_tests/models.py b/tests/django_restframework_gis_tests/models.py index f9c5fdd6..278bfe1a 100644 --- a/tests/django_restframework_gis_tests/models.py +++ b/tests/django_restframework_gis_tests/models.py @@ -12,6 +12,7 @@ class BaseModel(models.Model): name = models.CharField(max_length=32) slug = models.SlugField(max_length=128, unique=True, blank=True) + timestamp = models.DateTimeField(null=True, blank=True) geometry = models.GeometryField() objects = models.GeoManager() diff --git a/tests/django_restframework_gis_tests/serializers.py b/tests/django_restframework_gis_tests/serializers.py index 6b08bfb5..c4e767e9 100644 --- a/tests/django_restframework_gis_tests/serializers.py +++ b/tests/django_restframework_gis_tests/serializers.py @@ -54,7 +54,7 @@ class Meta: model = Location geo_field = 'geometry' id_field = 'slug' - fields = ('name', 'slug') + fields = ('name', 'slug', 'timestamp') class LocationGeoFeatureFalseIdSerializer(LocationGeoFeatureSerializer): @@ -98,7 +98,7 @@ class Meta: model = BoxedLocation geo_field = 'geometry' bbox_geo_field = 'bbox_geometry' - fields = ['name', 'details', 'id'] + fields = ['name', 'details', 'id', 'timestamp'] class LocationGeoFeatureBboxSerializer(gis_serializers.GeoFeatureModelSerializer): diff --git a/tests/django_restframework_gis_tests/tests.py b/tests/django_restframework_gis_tests/tests.py index d5ceb013..a3d78bbc 100644 --- a/tests/django_restframework_gis_tests/tests.py +++ b/tests/django_restframework_gis_tests/tests.py @@ -228,6 +228,7 @@ def test_geojson_format(self): 'details': "http://testserver/geojson/%s/" % location.id, 'name': 'geojson test', 'fancy_name': 'Kool geojson test', + 'timestamp': None, 'slug': 'geojson-test', }, 'geometry': {