Django: Вычисление нового атрибута перед передачей данных в формате GeoJSON

У меня есть набор данных о расположении точек (в данном примере - школ). Перед передачей этих данных в формате GeoJSON я хотел бы вычислить полигональные буферы вокруг точек и добавить их в качестве атрибута.

Я знаю, что могу использовать django.core.serializers.serialize для преобразования QuerySet в нужный мне формат GeoJSON. Я также знаю, как рассчитать буфер (self.geometry.buffer), я просто не могу понять, как соединить все это вместе.

models.py

from django.contrib.gis.db import models

class School(models.Model):

    name = models.CharField(max_length=50)
    geometry = models.PointField()

    def compute_buffer(self, radius):
        self.buffer = self.geometry.buffer(radius)

views.py

from django.core.serializers import serialize

def data(request):

    geom_as_geojson = serialize('geojson', School.objects.all())
    return HttpResponse(geom_as_geojson, content_type='json')
Вернуться на верх