Сериализация модели в GeoDjango, где поле geo_field находится в связанном поле

У меня есть модель, связанная с другой моделью отношением ManyToMany, которая содержит данные о местоположении. Я пытаюсь сериализовать эту модель, но получаю дополнительные поля в моем файле geojson:

Models.py
class Historicalfile(models.Model):
    dmsesite = models.ManyToManyField(Dmsesite)
    name = models.CharField(verbose_name='Job Name', max_length=250)
    ...

class Dmsesite(models.Model):    
    ptgeom = models.PointField(srid=4326, blank=True, null=True)
    plgeom = models.PolygonField(srid=4326, blank=True, null=True)

Serializers.py
class DmsesitePtSerializer(serializers.ModelSerializer):
    class Meta:
        model = Dmsesite
        fields = ("ptgeom",)

class HistoricalFileSerializer(serializers.GeoFeatureModelSerializer):
    dmsesite = DmsesitePtSerializer(many=True)
    class Meta:
        model = Historicalfile
        geo_field = "dmsesite"
        fields = ("company", "name",) 

Viewsets.py
class DmsesitePtSerializer(serializers.ModelSerializer):
    class Meta:
        model = Dmsesite
        fields = ("ptgeom",)

class HistoricalFileSerializer(serializers.GeoFeatureModelSerializer):
    dmsesite = DmsesitePtSerializer(many=True)
    class Meta:
        model = Historicalfile
        geo_field = "dmsesite"
        fields = ("company", "name",) 

Это в основном работает, за исключением того, что я получаю "дополнительное" поле в моем выводе GeoJson:

"properties": {
                "company": {
                    "name": "Don-More Surveys"
                },
                "name": "51938"
            }
        },
        {
            "type": "Feature",
            "geometry": [
                {
                    "ptgeom": {
                        "type": "Point",
                        "coordinates": [
                            -65.66314398960121,
                            45.65473652218946
                        ]
                    }
                }
            ],

Я ожидаю что-то вроде:

{
   "type": "Feature",
   "geometry": {
        "type": "Point",
        "coordinates": [
             -65.09304726799569,
             45.90454322923145
         ]
    },
    "properties": {
        "company": {
            "name": "Don-More Surveys"
        },
        "name": "51938"
     }
},

Я полагаю, что моя проблема связана с тем, что это отношение "многие ко многим". Я попытался выполнить сериализацию на противоположном поле (сериализовать поле Dmsesite.ptgeom), но получил аналогичные результаты.

С точки зрения того, что я пытаюсь сделать, мне действительно нужно сохранить это как отношение "многие ко многим". Одна запись Historicalfile может быть связана с несколькими записями Dmsesite, а одна запись Dmsesite может иметь несколько записей Historicalfile, связанных с ней.

Я хочу получить вывод, похожий на Foreignkey - одна запись Historicalfile для каждой комбинации: например, Historicalfile ID=1 -> связано с Dmsesite ID=1 и ID=2. Я хочу, чтобы это сериализовалось как две разные записи в GeoJson.

Цель - отобразить эти данные на карте-листовке с одной "точкой" на запись в файле GeoJson.

Вернуться на верх