Нужно данные из модели сгруппировать в список, например: points = [[-122.63, 45.51], [-122.56, 45.51], [-122.56, 45.55]]
и передать в js скрипт.
Первое значение в списке это latitude, второе longitude. Эти данные нужны для визуализации точек на карте. Если я буду отправлять данные как я их отправляю ниже на views.py, то точки не отображаются. Но если я просто передам список который инициализировал сам, то есть ввел данные в ручную, например:points = [[78, 44]], то на карте всё отображается. Попробовал отобразить список в представлении в итоге получил [[(Decimal('42.417'),), (Decimal('276.098'),)], [(Decimal('57.707'),), (Decimal('265.794'),)]].
Если я правильно понимаю, то причиной проблемы может быть, то что вместо списка вида: points = [[42.417, 276.098], [57.707, 265.794]] передается список [[(Decimal('42.417'),), (Decimal('276.098'),)], [(Decimal('57.707'),), (Decimal('265.794'),)]]. Вопрос как сделать так, чтобы передавался корректный список?
models.py:from django.db import models
class Station(models.Model):
idstation = models.IntegerField(db_column='IdStation', primary_key=True) # Field name made lowercase.
sitecode = models.CharField(db_column='SiteCode', max_length=4, blank=True, null=True) # Field name made lowercase.
namestation = models.CharField(db_column='NameStation', max_length=50, blank=True,
null=True) # Field name made lowercase.
latitude = models.DecimalField(db_column='Latitude', max_digits=6, decimal_places=3, blank=True,
null=True) # Field name made lowercase.
longitude = models.DecimalField(db_column='Longitude', max_digits=6, decimal_places=3, blank=True,
null=True) # Field name made lowercase.
type = models.CharField(db_column='Type', max_length=11, blank=True, null=True) # Field name made lowercase.
link = models.CharField(db_column='Link', max_length=150, blank=True, null=True) # Field name made lowercase.
class Meta:
managed = False
db_table = 'station'
views.py:from django.shortcuts import render
from django.views.generic import TemplateView
from .models import Station
def get_point():
pointlat = Station.objects.values_list("latitude")
pointlong = Station.objects.values_list("longitude")
points = []
i = 0
while i < len(pointlat):
points.append([pointlat[i], pointlong[i]])
i += 1
return (points)
# return (point)
class List(TemplateView):
template_name = 'station_list.html'
def get(self, request):
all_stations = Station.objects.values("latitude", "longitude")
ResponseData = get_point()
ctx = {
'all_stations': all_stations, 'ResponseData': ResponseData
}
return render(request, self.template_name, ctx)