내 질문은 Google Maps JavaScript API와 관련이 있습니다. 더 구체적으로 자동 완성 기능.Django - 장고보기에 js 변수 전달
자동 완성 기능을 테스트 사이트로 검색 막대로 추가했는데 제대로 작동하지만 이제 선택한 매개 변수를 장고보기에 전달하려고합니다. 그리고 여기 나는 붙어있다.
<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>
그리고 이것은 내보기 :
이def homepage(request):
if request.method == 'POST':
location = request.POST
else:
location = ''
return render_to_response('homepage.html', {'location':location}, context_instance = RequestContext(request))
내가하고 싶은 것은 변수 '에 변수'장소 '를 전달하는 것입니다
이
내가 내 템플릿에 무엇을 가지고 위치 '내 장고보기 (var 장소는 위도와 경도를 포함해야합니다, 그리고 내가 더 Geodjango에서 사용하고 싶습니다).request.POST
은 다음을 제공합니다.
<QueryDict: {u'csrfmiddlewaretoken': [u'4xp3nNwzeITb1zHhkBkSGlZSPtGwmuMB']}>
하지만이 방법을 사용할 수 없습니다.
var 장소의 내용을 장고보기로 전달할 수 있습니까?
의견에 감사드립니다.
편집 : geopy 사용하는 순간 내 해결 방법 :
템플릿 :
<input id="searchTextField" name="searchTextField" type="text" placeholder="Enter a location" autocomplete="on">
보기 :
if request.method == 'POST':
location = request.POST.get('searchTextField')
gn = geocoders.Google()
place, (lat, lng) = gn.geocode(location)
이 아직도 script
에 var place
에 액세스 할 수있는 방법을 찾고. 이것이 가능한가?
숨겨진 필드를 만들고 javascript를 사용하여 값을'place'로 설정하십시오. 폼의 submit 버튼에 jquery를 사용하여 이것을 populate 할 수 있습니다. –
@ 부르 칸 박사가 말한 바. 자바 스크립트를 사용하여 양식에 장소 값을 가져와야합니다. 양식을 제출하면 장고보기로 전송되며 동일한 방식으로 액세스 할 수 있습니다. 'request.POST.get ('place ') '. –
답장은 Thx입니다. 스크립트의 끝 부분에 다음을 추가했습니다 :'document.getElementById ('place'). value = autocomplete.getPlace();'폼에'input id = "place "name ="place "type ="text "/>'. 그러나 '장소'필드의 값은 비어 있습니다. 이것은 폼이 제출되기 전에'var place '가 계산되지 않기 때문입니까? –