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')