sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo satisfago la restricción enforce_srid_coordinate con GeoDjango/PostGIS?

Parece que está tratando de agregar un nuevo ArchivrItem haciendo esto:

item = ArchivrItem(coordinate='POINT(51.520667 -0.094833)')
item.save()

Y esto no es obtener el SRID predeterminado correcto por algún motivo del que no estoy seguro. Sin embargo, especificarlo explícitamente debería funcionar, por ejemplo:

from django.contrib.gis.geos import Point
item = ArchivrItem(coordinate=Point(-0.094833, 51.520667, srid=4326))
item.save()

Diría que el srid es opcional si va a coincidir con la definición del modelo, pero no hay problema en especificarlo, y puede ver si simplemente usar la forma de objeto lo soluciona de todos modos. https://docs.djangoproject.com/en/dev/ref/contrib/gis/db-api/#creación-y-guardado-de-modelos-geográficos tiene algunos ejemplos más.

[Aparte, tenga en cuenta que PUNTO() es X luego Y, es decir, lon luego lat, no lat/lon. Puede poner un SRID si es WKT extendido con "SRID=4326;POINT(-0.094833 51.520667)"]