Django - Übergebe die Variable js an die Django-Ansicht
Meine Frage bezieht sich auf die JavaScript-API von Google Maps. Genauer gesagt die Autocomplete-Funktion.
Ich habe die Autocomplete-Funktion als Suchleiste zu meiner Testsite hinzugefügt und das funktioniert einwandfrei, aber jetzt möchte ich den ausgewählten Parameter an eine Django-Ansicht übergeben. Und hier stecke ich fest.
Das habe ich in meiner Vorlage:
<script src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"></script>
<script type="text/javascript">
function initialize() {
var input = document.getElementById('searchTextField');
var autocomplete = new google.maps.places.Autocomplete(input);
}
google.maps.event.addDomListener(window, 'load', initialize);
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var place = autocomplete.getPlace();
});
</script>
<form method="post" action="">{% csrf_token %}
<input id="searchTextField" type="text" placeholder="Enter a location" autocomplete="on">
<input type="submit" value="Search" class="postfix button"/>
</form>
Und das aus meiner Sicht:
def homepage(request):
if request.method == 'POST':
location = request.POST
else:
location = ''
return render_to_response('homepage.html', {'location':location}, context_instance = RequestContext(request))
Was ich tun möchte, ist, die Variable 'Ort' an die Variable 'Ort' in meiner Django-Ansicht zu übergeben (die Variable Ort sollte das Lat und Lon enthalten, und diese möchte ich dann in Geodjango weiter verwenden). Dasrequest.POST
gibt folgendes an:<QueryDict: {u'csrfmiddlewaretoken': [u'4xp3nNwzeITb1zHhkBkSGlZSPtGwmuMB']}>
Aber das kann ich nicht verwenden.
Ist es möglich, den Inhalt von var place an die Django-Ansicht zu übergeben?
Danke für die Rückmeldung!
EDIT: mein Workaround für den Moment mit Geopy:
Vorlage:
<input id="searchTextField" name="searchTextField" type="text" placeholder="Enter a location" autocomplete="on">
Aussicht:
if request.method == 'POST':
location = request.POST.get('searchTextField')
gn = geocoders.Google()
place, (lat, lng) = gn.geocode(location)
Immer noch auf der Suche nach einem Zugang zumvar place
in demscript
. Ist das möglich?