3

私の質問は Google Maps JavaScript API に関するものです。より具体的なオートコンプリート機能。

テスト サイトに検索バーとしてオートコンプリート機能を追加しましたが、これは正常に機能しますが、選択したパラメーターを Django ビューに渡したいと考えています。そして、ここで私は立ち往生しています。

これは私のテンプレートにあるものです:

<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))

私がやりたいことは、変数「場所」を Django ビューの変数「場所」に渡すことです (var 場所には緯度と経度が含まれている必要があり、これを Geodjango でさらに使用したい)。次のrequest.POSTようになります。<QueryDict: {u'csrfmiddlewaretoken': [u'4xp3nNwzeITb1zHhkBkSGlZSPtGwmuMB']}>しかし、これは使用できません。

var place の内容を django ビューに渡すことは可能ですか?

フィードバックをお寄せいただきありがとうございます!

編集: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)

var placeの にアクセスする方法をまだ探していますscript。これは可能ですか?

4

1 に答える 1

3

まずname、検索入力に属性を追加します。searchTextFieldのように呼び出したとしましょうid。その後、行うことができますrequest.POST.get('searchTextField')

于 2012-08-09T21:51:05.887 に答える