Django: Отправляйте данные агентства в контекстный словарь и используйте их для построения маркеров на карте
В моем проекте есть приложение агентства с моделью, в которой я сохраняю данные агентов по продаже компании, включая их имя и контактную информацию, а также их координаты.
Моя модель агентства:
class Agency(models.Model):
English = "En"
Persian = "Fa"
Arabic = "Ar"
LANG_CHOICE = [
(English, "English"),
(Persian, "Persian"),
(Arabic, "Arabic"),
]
language = models.CharField(
max_length=2,
choices=LANG_CHOICE,
default=Persian,
)
province = models.ForeignKey(
Province,
on_delete=models.SET_NULL,
default=None,
null=True,
)
city = models.ForeignKey(
City,
on_delete=models.SET_NULL,
default=None,
null=True,
)
title = models.CharField(
max_length=100,
blank=True,
null=True,
)
owner_name = models.CharField(
max_length=200,
blank=True,
null=True,
)
address = models.CharField(
max_length=500,
blank=True,
null=True,
)
telephone = models.BigIntegerField(blank=True, null=True)
mobile = models.BigIntegerField(blank=True, null=True)
fax = models.BigIntegerField(blank=True, null=True)
latitude = models.DecimalField(
max_digits=9, decimal_places=6, blank=True, null=True
)
longitude = models.DecimalField(
max_digits=9, decimal_places=6, blank=True, null=True
)
def __str__(self):
return self.title
Теперь задача состоит в том, чтобы написать представление для этой модели, в котором я буду отправлять данные модели агентства в контекстном словаре на фронт, и там использовать эти данные для создания маркеров для каждого агентства рядом со списком агентств. У меня нет проблем с написанием представления, контекстный словарь будет выглядеть примерно так:
Этот пример для 1 агентства:
{
"AgencyList":
[
{
"id": 1,
"language": "Fa",
"province": 1,
"city": 1,
"title": "بنایی",
"owner_name": "آقای بنایی",
"address": "تبریز، خیابان یکم",
"telephone": "041-33412345",
"mobile": "09141234567",
"fax": null,
"latitude": "38.074370",
"longitude": "46.257343"
},
{
//other agencies
}
]
}
Теперь у меня следующие вопросы:
- Как я могу генерировать маркеры для моей карты, используя широту и долготу в этом словаре?
- Нужно ли мне конвертировать этот словарь в данные GeoJSON, чтобы использовать его в Mapbox? Если да, то как я могу это сделать? Как я могу отслеживать клики по элементам списка агентств в боковой панели и автоматически показывать на карте агентство, на которое кликнули?
P.S. Это мой первый проект без учебника, поэтому мне нужно многому научиться; поэтому ваш ответ будет очень признателен, если он будет содержать пошаговое руководство (только руководство, а не дословный код) для решения моей проблемы. Заранее спасибо.