1
我正在嘗試計算具有geodjango幾何字段的模型的總面積,並按其他屬性進行分組。我沒有找到geoqueryset api reference中的函數,而常規的Sum aggregate function不適用於這種情況。在Django中按組分組的地理區域總面積
所以我嘗試使用上查詢集「額外」的說法如下:
class MyModel(models.Model):
name = models.CharField(max_length = 100)
geom = models.MultiPolygonField()
objects = models.GeoManager()
MyModel.objects.all()\
.extra(select={'area': 'SUM(ST_Area(geom))'})\
.values('area', 'name')
這不工作,返回下面的編程錯誤。
column "app_mymodel.name_id" must appear in the GROUP BY clause \
or be used in an aggregate function
我試過的extra
,values
和annotate
與這些領域的多種組合,但未能獲得工作骨料。如果我放棄分組參數names
,則總面積將成功返回。
關於如何獲得由附加屬性分組的幾何場的區域的任何想法?