我的django代码被破坏并引发以下问题:

AttributeError: 'GeoQuerySet' object has no attribute 'extent'

在我的代码中,我试图调用django上的extent:
    if raster and bbox:
        self.extent = qs.extent()

我的Django版本目前是1.10,最近已经从Django 1.9升级了。

最佳答案

这是因为DjangodeprecatedDjango 1.8版之后的extents上的GeoQuerySet方法。这可以使用ExtentAggregate Function来修复,如下所示:

from django.contrib.gis.db.models import Extent

# ...

    if raster and bbox:
        self.extent = qs.aggregate(Extent('geometry')).get(
            'geometry__extent')

10-08 17:32