我想在Django改造幾何列如何變換幾何列,這裏是我的模型使用GeoDjango內置
class Network(models.Model):
name = models.CharField(max_length=50, blank=True)
alias = models.CharField(max_length=100, blank=True)
geometry = models.GeometryField(srid=3857, null=True, blank=True)
bbox = models.GeometryField(srid=3857, null=True, blank=True)
objects = models.GeoManager()
class Meta:
db_table = u'tbl_network'
def __unicode__(self):
return '%s' % self.name
我試圖改變BBOX列,但GeoQuerySet
自動tranforms 幾何列
Network.objects.transform(srid=3857).values('geometry','bbox')
上述django的查詢的SQL查詢輸出
SELECT ST_Transform("tbl_network"."geometry", 3857), "tbl_network"."bbox" FROM "tbl_network"
所以我嘗試了不同的方式,現在我排除幾何欄上方的Django查詢
Network.objects.transform(srid=3857).values('bbox')
SQL查詢輸出
SELECT "tbl_network"."bbox" FROM "tbl_network"
現在GeoQuerySet
完全無視變換函數。
所以我的問題是:我如何轉換特定的模型列?
我從這個Django的論壇,回覆,但我不明白什麼是與多個幾何列問題
「我看到這麼一號查詢作品:第二個不能做 變換。我認爲這個問題可能與你具有相同的PostGIS表2個 幾何列。
都是他們在POSTGIS的GEOMETRY_COLUMNS視圖中列出。 通常只有1個可以是默認的。在這種情況下的幾何形狀,所以 Geodjango/Postgis將其視爲空間專欄。但是當它到達bbox時,它不能識別它,並且不知道什麼是(012)當前),所以變換不起作用。
一種選擇是返回數據,然後將其轉換爲 將空間對象變爲python變量。 ?「
任何人都可以解釋這個答覆