1
0
mirror of https://github.com/django/django.git synced 2025-10-24 22:26:08 +00:00

Fixed #33742 -- Added id to GeoJSON serializer.

This commit is contained in:
Samir Shah
2022-05-28 12:33:15 +03:00
committed by Mariusz Felisiak
parent 9a3b7e5e2b
commit 6f73eb9d90
4 changed files with 26 additions and 1 deletions

View File

@@ -27,6 +27,7 @@ class GeoJSONSerializerTests(TestCase):
self.assertEqual(geodata["features"][0]["geometry"]["type"], "Point")
self.assertEqual(geodata["features"][0]["properties"]["name"], "Chicago")
first_city = City.objects.order_by("name").first()
self.assertEqual(geodata["features"][0]["id"], first_city.pk)
self.assertEqual(geodata["features"][0]["properties"]["pk"], str(first_city.pk))
def test_geometry_field_option(self):
@@ -61,6 +62,17 @@ class GeoJSONSerializerTests(TestCase):
geodata = json.loads(geojson)
self.assertEqual(geodata["features"][0]["geometry"]["type"], "Polygon")
def test_id_field_option(self):
"""
By default Django uses the pk of the object as the id for a feature.
The 'id_field' option can be used to specify a different field to use
as the id.
"""
cities = City.objects.order_by("name")
geojson = serializers.serialize("geojson", cities, id_field="name")
geodata = json.loads(geojson)
self.assertEqual(geodata["features"][0]["id"], cities[0].name)
def test_fields_option(self):
"""
The fields option allows to define a subset of fields to be present in