Coverage for gws-app/gws/plugin/model_field/__init__.py: 100%
0 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
1"""Model field types.
3Each subpackage implements one field type for models (``gws.ext.object.modelField``).
4A field maps one attribute of a feature to a column (or a relationship) in the
5data source, converts values between the database, Python and the client, and
6creates a default widget when none is configured.
8Scalar fields, based on ``gws.base.model.scalar_field``:
10- ``bool``: boolean values, ``toggle`` widget.
11- ``date``: dates, transferred as ISO strings, ``date`` widget.
12- ``datetime``: date and time values, transferred as ISO strings, ``input`` widget.
13- ``float``: floating-point numbers, ``float`` widget.
14- ``integer``: integer numbers, ``integer`` widget.
15- ``text``: strings, with optional keyword search, ``input`` widget.
16- ``time``: time values, transferred as ISO strings, ``input`` widget.
17- ``geometry``: geometries, used for spatial searches, ``geometry`` widget.
19Other fields, based on ``gws.base.model.field``:
21- ``file``: files stored in a database column, with download and preview URLs.
23Related fields, based on ``gws.base.model.related_field``, link features of
24database models:
26- ``related_feature``: M:1, the value is the parent feature.
27- ``related_feature_list``: 1:M, the value is the list of child features.
28- ``related_multi_feature_list``: 1:M with several child models.
29- ``related_linked_feature_list``: M:N via a link table.
31Example::
33 models+ {
34 type "postgres"
35 tableName "edit.poi"
36 fields+ { name "id" type "integer" isPrimaryKey true }
37 fields+ { name "name" type "text" textSearch { type "any" } }
38 fields+ { name "geom" type "geometry" }
39 fields+ {
40 name "category"
41 type "relatedFeature"
42 fromColumn "category_id"
43 toModel "model_category"
44 widget.type "featureSelect"
45 }
46 }
47"""