Django - passe a variável js para a visualização do django
Minha pergunta está relacionada à API JavaScript do Google Maps. Mais específica a função autocomplete.
Eu adicionei a função autocomplete como uma barra de pesquisa ao meu site de teste e isso funciona bem, mas agora eu quero passar o parâmetro escolhido para uma visualização do Django. E aqui estou preso.
Isto é o que eu tenho no meu template:
<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>
E isso na minha opinião:
def homepage(request):
if request.method == 'POST':
location = request.POST
else:
location = ''
return render_to_response('homepage.html', {'location':location}, context_instance = RequestContext(request))
O que eu quero fazer é passar a variável 'place' para a variável 'location' na minha view do Django (o var place deve conter o lat e o lon, e isso eu quero usar depois no Geodjango). orequest.POST
dá o seguinte:<QueryDict: {u'csrfmiddlewaretoken': [u'4xp3nNwzeITb1zHhkBkSGlZSPtGwmuMB']}>
Mas isso eu não posso usar.
É possível passar o conteúdo do var place para a visualização do django?
Obrigado pelo feedback!
EDIT: minha solução alternativa para o momento usando geopy:
Modelo:
<input id="searchTextField" name="searchTextField" type="text" placeholder="Enter a location" autocomplete="on">
Visão:
if request.method == 'POST':
location = request.POST.get('searchTextField')
gn = geocoders.Google()
place, (lat, lng) = gn.geocode(location)
Ainda procurando uma maneira de acessar ovar place
noscript
. Isso é possível?