В приложении Django у меня есть следующая модель:
class Appointment(models.Model):
#some other fields
#address fields
zipcode=models.CharField(max_length=5)
address=models.CharField(max_length=120)
latitude=models.FloatField()
longitude=models.FloatField()
Когда я отрисовываю встречу, я просто помещаю маркер в положение, заданное долготой и широтой, с адресом в виде текста, однако для этого мне нужны широта и долгота.
В настоящее время широту и долготу необходимо вводить вручную в бэкэнде администратора, но открытие Google Maps / OSM, поиск адреса и ввод широты и долготы - это работа, которую не нужно делать вручную, поэтому я хочу чтобы получить его через API Карт Google (ключевое слово Geocoding).
В идеале мне нужна кнопка «Получить координаты» рядом с адресом, которая при нажатии запускает запрос геокодирования и заполняет широту и долготу, когда адрес однозначный, и представляет карту с результатами и заполняет координаты. когда пользователь нажимает на правый маркер.
Я знаю, как это сделать, но я не уверен, как мне вставить разметку и код в административный сервер.
Некоторые вещи, которые я уже рассмотрел, но не хочу делать, поскольку они не кажутся естественными или кажутся слишком трудоемкими для такой простой задачи:
- помещает код в описании поля адреса в
field_options
в классе, производном от admin.ModelAdmin
- размещение всего адреса, относящегося к отдельной модели и использование пользовательского
form
(с отдельным шаблоном
- создать виджет выбора адреса
- использовать GeoDjango