【发布时间】:2012-05-16 04:49:28
【问题描述】:
我正在使用 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)
【问题讨论】:
标签: django postgresql postgis geodjango