geodjango - построить json из геометрии ключа foreigk - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь визуализировать веб-карту с моделью django, информация о геометрии которой является внешним ключом, я пытался обновить значение с помощью функции для создания json и вызова внешнего ключа, но -Я получил эту ошибку:

SyntaxError: ожидаемое выражение, получено '<' </p>

, оно считывает json буквально тип объекта внешнего ключа:

'координаты': [<объект MultiPoint в 0x7fe1d0420808>]},

как я могу превратить объект внешнего ключа в значение lat и long и вставить в функцию json?

models.py

class Info_Proy_eyd(models.Model):
    nom_proy = models.CharField(max_length=50)
    rol_fk = models.ForeignKey(D_Base_Roles, on_delete=models.CASCADE, blank=True, null=True, verbose_name="Rol")

    def json(self):
        return {
            'nombre_proy':self.nombre_proyecto,
            'geom':self.rol_fk.geom,
        }

представления. py

def map_eyd(request):
    serie_t = Info_Proy_eyd.objects.all()
    json_s = []
    for t in serie_t:
        json_s.append(Info_Proy_eyd.json(t))

    p_json = {
        "type": "FeatureCollection",
        "features": [
        {
            "type": "Feature",
            "geometry" : {
                "type": "Point",
                "coordinates": [d["geom"]],
                },
            "properties" : d,
         } for d in json_s]
     }

    return render(request, 'b_seco_eyd/mapa_eyd.html', {'serie_t':serie_t, 'p_json':p_json, 'json_s':json_s})

page.html листовка js

var proy_eyd = {{p_json|safe}};
var mrk = L.geoJson(proy_eyd , {
      style: {
        }
      }
      ).addTo(map);

спасибо

...