【发布时间】:2017-01-24 02:34:52
【问题描述】:
新手问题:Django + Postgres + PostGIS
我正在尝试在 Django 中设置一个项目模型,该模型需要根据其几何类型有条件地与几何模型相关。几何类型是:点、线或多边形。问题是如何在项目模型中定义这种关系,这样我就不必在同一个表中保存不同的几何类型(因此有 3 个不同的几何模型)
========================这是我的模型==================== ========
PRJ_GEOM = (
(1, "point"),
(2, "line"),
(3, "polygon")
)
class Project(models.Model):
name = models.CharField(max_length=20)
project_geom_type = models.IntegerField(choices=PRJ_GEOM)
project_geometry = models.OneToOneField( ????) # I am stuck here - how do I express this conditional relationship which depends on project_geom_type
#几何模型
class Project_Point_Geom(models.Model):
project = models.OneToOne(Project, on_delete=models.CASCADE, related_name='project_point')
point = models.PointField()
class Project_Line_Geom(models.Model):
project = models.OneToOne(Project, on_delete=models.CASCADE, related_name='project_line')
line = models.LineStringField()
class Project_Polygon_Geom(models.Model):
project = models.OneToOne(Project, on_delete=models.CASCADE, related_name='project_polygon')
polygon = models.PolygonField()
【问题讨论】:
标签: django django-models postgis geodjango