如何用区域字段更新geojango模型



模型:

from django.contrib.gis.db import models    
class City(models.Model):
mpoly = models.MultiPolygonField()
area = models.IntegerField(null=True)

我想一次更新所有记录来设置区域。我试过了:

from django.contrib.gis.db.models.functions import Area, Transform
City.objects.all().update(area=Area(Transform("mpoly", 2154)))

错误提示"DataError: value too long for type character varying(8)"…

你有一个优雅的一行字来做这件事吗?

事实上,我的问题是,我试图把一个大的数字在字符字段(8个字符)。提供的示例与错误无关。

使其与所提供的模型一起工作:

from django.contrib.gis.db.models.functions import Area, Transform
from django.db.models import IntegerField
from django.db.models.functions import Cast
City.objects.all().update(area=Cast(Area(Transform("mpoly", 2154)), IntegerField()))

最新更新