File: serializers.txt

package info (click to toggle)
python-django 3%3A5.2.5-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 61,236 kB
  • sloc: python: 361,585; javascript: 19,250; xml: 211; makefile: 182; sh: 28
file content (61 lines) | stat: -rw-r--r-- 2,262 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
======================
``GeoJSON`` Serializer
======================

.. module:: django.contrib.gis.serializers.geojson
    :synopsis: Serialization of GeoDjango models in the GeoJSON format.

GeoDjango provides a specific serializer for the `GeoJSON`__ format. See
:doc:`/topics/serialization` for more information on serialization.

__ https://geojson.org/

The ``geojson`` serializer is not meant for round-tripping data, as it has no
deserializer equivalent. For example, you cannot use :djadmin:`loaddata` to
reload the output produced by this serializer. If you plan to reload the
outputted data, use the plain :ref:`json serializer <serialization-formats-json>`
instead.

In addition to the options of the ``json`` serializer, the ``geojson``
serializer accepts the following additional option when it is called by
``serializers.serialize()``:

* ``geometry_field``: A string containing the name of a geometry field to use
  for the ``geometry`` key of the GeoJSON feature. This is only needed when you
  have a model with more than one geometry field and you don't want to use the
  first defined geometry field (by default, the first geometry field is picked).

* ``id_field``: A string containing the name of a field to use for the ``id``
  key of the GeoJSON feature. By default, the primary key of objects is used.

* ``srid``: The SRID to use for the ``geometry`` content. Defaults to 4326
  (WGS 84).

The :ref:`fields <subset-of-fields>` option can be used to limit fields that
will be present in the ``properties`` key, as it works with all other
serializers.

Example::

    from django.core.serializers import serialize
    from my_app.models import City

    serialize("geojson", City.objects.all(), geometry_field="point", fields=["name"])

Would output::

    {
        "type": "FeatureCollection",
        "features": [
            {
                "type": "Feature",
                "id": 1,
                "geometry": {"type": "Point", "coordinates": [-87.650175, 41.850385]},
                "properties": {"name": "Chicago"},
            }
        ],
    }

When the ``fields`` parameter is not specified, the ``geojson`` serializer adds
a ``pk`` key to the ``properties`` dictionary with the primary key of the
object as the value.