신참 질문 : 장고 + 포스트 그레스 + PostGIS와장고 모델 조건 관계
내가 설정에 조건의 지오메트리 유형에 따라 기하 모델에 관련 될 필요가 장고의 사업 모델을 시도하고있다. 기하학 유형은 점, 선 또는 다각형입니다. 문제는 ========= 내가
같은 테이블 (따라서 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()
이것은 project_geometry right라는 동일한 필드에 다른 지오메트리 유형이 저장되는 것으로 가정합니다. 내 GIS 경험에서 나는 이것이 좋은 생각이 아니라는 것을 알고 있지만 어쨌든 중요하지 않습니다. 모든 단서? 그게 그렇게 중요한 건가? – skulk001
예, 같은 기하 유형이 동일한 필드 유형에 저장되는 것은 중요하지 않습니다. – e4c5
이것은 아주 좋습니다. 이 공간 쿼리의 결과에 어떤 의미를 가질 것인지 궁금 - 나는 다각형 내의 모든 프로젝트를 조회 찾고 말 - 나는 점 기하 구조가 컬렉션을 반환합니다 알고, 그 결과가 어떻게 보일지 라인과 폴리곤? Postgis는 교차를 수행하고 경계 다각형 내에있는 모든 지오메트리를 반환합니까? 당신이 __within에 대한 질문 또는 PostGIS와 쿼리를 __dwithin 경우 – skulk001