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:
committed by
Mariusz Felisiak
parent
9a3b7e5e2b
commit
6f73eb9d90
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user