Tratando de abarcar las formas de django y la forma de hacer las cosas de django. Quiero crear un formulario web básico que permita a un usuario ingresar una dirección y tener esa dirección geocodificada y guardada en una base de datos.geocodificando una dirección en el envío del formulario?
creé un modelo Ubicación:
class Location(models.Model):
address = models.CharField(max_length=200)
city = models.CharField(max_length=100)
state = models.CharField(max_length=100, null=True)
postal_code = models.CharField(max_length=100, null=True)
country = models.CharField(max_length=100)
latitude = models.DecimalField(max_digits=18, decimal_places=10, null=True)
longitude = models.DecimalField(max_digits=18, decimal_places=10, null=True)
y definido un formulario:
class LocationForm(forms.ModelForm):
class Meta:
model = models.Location
exclude = ('latitude','longitude')
En mi opinión estoy usando form.save()
para guardar el formulario. Esto funciona y guarda una dirección en la base de datos.
Creé un módulo para geocodificar una dirección. No estoy seguro de cuál es la forma de hacer las cosas de django, pero supongo que, desde mi punto de vista, antes de guardar el formulario, necesito geocodificar la dirección y configurar el lat y long. ¿Cómo configuro la latitud y la longitud antes de guardar?
Muchas gracias voy a probar esto y me pondré en contacto contigo. ¿Cuál es tu opinión sobre geocodificar() devolver una tupla u objeto Coordinate en lugar de una cadena? – User
Esa es una gran idea. Sería más limpio empaquetar mejor los datos antes de regresar. En general, me gusta hacer tales cosas. Lo dejé de esta manera debido a cómo refactoreé la ecuación original. Estaba pensando en CSV todo el camino solo porque así es como regresa de Google, pero me gusta cómo estás pensando. Voy a refactorizar esto para devolver un objeto. – digitaldreamer
Actualización para Google Maps API v3 a continuación. –