|
@@ -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
|