[英]How to update GeoDjango model with area fields
这里是 model:
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:类型字符变化的值太长(8)”......
你有优雅的单衬垫吗?
事实上,我的问题是我试图在 char 字段(8 个字符)中放入大量数字。 提供的示例和错误无关。
要使其与提供的 model 一起使用:
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()))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.