[英]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.