PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como eu satisfaço a restrição de enforcement_srid_coordinate com GeoDjango/PostGIS?


Parece que você está tentando adicionar um novo ArchivrItem fazendo isso:
item = ArchivrItem(coordinate='POINT(51.520667 -0.094833)')
item.save()

E isso não está obtendo o SRID padrão correto por algum motivo que não tenho certeza. No entanto, especificá-lo explicitamente deve funcionar, por exemplo:
from django.contrib.gis.geos import Point
item = ArchivrItem(coordinate=Point(-0.094833, 51.520667, srid=4326))
item.save()

Eu diria que o srid é opcional se for corresponder à definição do modelo, mas não há problema em especificá-lo, e você pode ver se simplesmente usar o caminho do objeto o corrige de qualquer maneira. https://docs.djangoproject.com/en/dev/ref/contrib/gis/db-api/#creating-and-saving-geographic-models tem mais alguns exemplos.

[À parte, observe que POINT() é X depois Y, ou seja, lon depois lat, não lat/lon. Você pode colocar um SRID se for WKT estendido com "SRID=4326;POINT(-0.094833 51.520667)"]