En una aplicación Django tengo el siguiente modelo:Adición de encargo JS a un campo Django administrador
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()
cuando estoy haciendo una cita, sólo estoy poniendo un marcador en la posición especificada por longitud y latitud con la dirección como texto; sin embargo, necesito la latitud y la longitud para hacerlo.
Actualmente, la latitud y la longitud tienen que ingresarse manualmente en el administrador backend, pero abrir Google Maps/OSM, buscar la dirección e ingresar latitud y longitud es un trabajo que no debería hacerse a mano, entonces desea recuperarlo a través de la API de Google Maps (palabra clave Geocodificación).
Idealmente, quiero un botón "Obtener coordenadas" junto a la dirección que, cuando se presiona, inicia una solicitud de geocodificación y rellena la latitud y longitud cuando la dirección no es ambigua y presenta un mapa con los resultados y rellena el coordina cuando el usuario hace clic en el marcador correcto.
Sé cómo hacer eso, pero no estoy seguro de cómo debo insertar el marcado y el código en el back-end de administración.
Algunas cosas que ya considerados, pero no quiere hacer, ya que no parecen naturales o parecen ser demasiado trabajo para una tarea tan sencilla:
- poner el código en la descripción del campo de dirección en
field_options
en una clase derivada deadmin.ModelAdmin
- poner todo lo relacionado en la dirección de un modelo separado y usando un encargo
form
(con una plantilla separada - crear un widget de dirección captadora nos
- e GeoDjango
carpeta Media es una carpeta válida, pero creo que es mejor STATIC_URL como esto static_url = getattr (configuración, 'STATIC_URL ','/static/') js = [static_url +' ruta/a/mi/personalizado/archivo.js ',] – elin3t