Как включить связанные поля при сериализации в geojson в django
У меня есть две модели. Первая содержит данные о точке. Вторая является ForeignKey, обратным к точечной модели. Как мне включить поля из второй модели при серализации первой модели?
class Site(models.Model):
ptgeom = models.PointField(srid=2953, blank=True, null=True)
...
class File(models.Model):
site = models.ForeignKey(Site, on_delete=models.PROTECT, blank=True, null=True)
name = models.CharField(verbose_name='File', max_length=250, blank=True, null=True)
...
В моем представлении я строю кверисет видимых точек и пытаюсь передать его обратно на карту:
def file_points(request):
...
q_set = Dmsesite.objects.filter(ptgeom__contained=geom)
points_as_geojson = serialize('geojson', q_set, geometry_field='ptgeom')
return JsonResponse(json.loads(points_as_geojson))
Из этого я получаю json всех записей точек в q_set. Я хочу, чтобы он включал также записи Файла.
Я искал, но действительно заблудился. Я пробовал .select_related(), но со стороны сайта модель File на самом деле не является связанным полем.
Я попытался ответить на этот вопрос: Определить поля связанной модели в поле сериализатора Django GeoJSON. и создать CustomSerializer, но я все еще не получил ни одной записи File.
Другой возможностью может быть создание нового набора запросов на противоположной стороне (File side) на основе текущего набора запросов (Site), но я не уверен, как я это сделаю, поскольку я думаю, что это приведет к созданию нескольких наборов запросов (по одному для каждого сайта)?
Это, кажется, должно быть что-то, что встречается часто, но я полностью застрял. Любая помощь будет очень признательна.