Как обновить модель GeoDjango с полями области

Вот модель:

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: значение слишком длинное для типа character varying(8)"...

У вас есть элегантная фраза для этого?

Собственно говоря, моя проблема заключалась в том, что я пытаюсь поместить большое число в поле char (из 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()))
Вернуться на верх