我正在使用 GeoDjango 并有一个带有 PointField 的 Django 模型:
class ArchivrItem(models.Model):
...
coordinate = models.PointField(srid=4326)
当我尝试使用纬度和经度插入新的 ArchivrItem 时,我收到此错误:
ERROR: new row for relation "archivr_archivritem" violates check constraint "enforce_srid_coordinate"
我可以通过尝试这样做来避免 Django 并直接在 postgresql 中得到相同的错误:
INSERT INTO archivr_archivritem (coordinate) VALUES ('POINT(51.520667 -0.094833)');
我可能对 SRID 和点系统很天真和无知……我错过了什么?谢谢。
更新:我应该添加约束是什么。表上的约束是:
"enforce_dims_coordinate" CHECK (st_ndims(coordinate) = 2)
"enforce_geotype_coordinate" CHECK (geometrytype(coordinate) = 'POINT'::text OR coordinate IS NULL)
"enforce_srid_coordinate" CHECK (st_srid(coordinate) = 4326)