Попытка обернуть мою голову вокруг форм джанго и способ джанго делать вещи. Я хочу создать базовую веб-форму, которая позволяет пользователю вводить адрес и иметь этот адрес, геокодированный и сохраненный в базе данных.Геокодирование адреса при отправке формы?
Я создал модель Расположение:
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)
И определили форму:
class LocationForm(forms.ModelForm):
class Meta:
model = models.Location
exclude = ('latitude','longitude')
На мой взгляд, я использую form.save()
, чтобы сохранить форму. Это работает и сохраняет адрес в базе данных.
Я создал модуль для геокодирования адреса. Я не уверен, что способ делать что-то джанго, но, на мой взгляд, прежде чем сохранить форму, мне нужно геокодировать адрес и установить lat и long. Как установить широту и долготу перед сохранением?
Большое спасибо Я попробую это и вернусь к вам. Что вы берете на geocode(), возвращая кортеж или объект Coordinate вместо строки? – User
Это отличная идея. Было бы лучше очистить данные перед возвратом. Обычно мне нравится делать такие вещи. Я оставил его таким образом из-за того, как я реорганизовал исходное уравнение. Я думал, что CSV весь путь просто потому, что так он возвращается из Google, но мне нравится, как вы думаете. Я собираюсь реорганизовать это, чтобы вернуть объект. – digitaldreamer
Обновление для API Карт Google v3 ниже. –