Próbuję owinąć głowę wokół formularzy django i sposobu działania django. Chcę utworzyć podstawowy formularz internetowy, który pozwala użytkownikowi wprowadzić adres i mieć ten geokodowany i zapisany w bazie danych.Geokodowanie adresu przy składaniu formularza?
stworzyłem model Lokalizacja:
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)
i określone formy:
class LocationForm(forms.ModelForm):
class Meta:
model = models.Location
exclude = ('latitude','longitude')
Moim zdaniem Używam form.save()
aby zachować formę. To działa i zapisuje adres w bazie danych.
Stworzyłem moduł do geokodowania adresu. Nie jestem pewien, jaki jest sposób działania django, ale według mnie, zanim zapiszę formularz, muszę geokodować adres i ustawić czas i długość. Jak ustawić szerokość i długość geograficzną przed zapisaniem?
Wielkie dzięki, wypróbuję to i skontaktuję się z Tobą. Jakie jest twoje zdanie na temat geocode() zwracającej krotkę lub obiekt współrzędnych zamiast ciągu? – User
To świetny pomysł. Byłoby czystsze, aby lepiej spakować dane przed powrotem. Generalnie lubię robić takie rzeczy. Zostawiłem to w ten sposób, ponieważ odtworzyłem oryginalne równanie. Myślałem, że CSV jest po prostu dlatego, że tak powraca z google, ale podoba mi się, jak myślisz. Zamierzam to zmienić, aby zwrócić obiekt. – digitaldreamer
Aktualizacja aplikacji Google Maps API v3 poniżej. –