簡體   English   中英

如何使用區域字段更新 GeoDjango model

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM