Django에서 위치를 지오 코딩하여 검색 필드를 얻고 거리별로 정렬 된 데이터베이스에서 목록을 추출하려고했습니다. 지금까지 모든 것은 Google이 "ann arbor, MI"와 같은 여러 결과 양식을 반환하는 위치를 검색 할 때를 제외하고 모두 작동합니다. 나는 ValueError를 "이 정확히 하나 개의 장소를 찾지 못했습니다! (2 발견)"얻을 여기 내 views.py는Geopy ValueError 지오 코딩을 할 때 정확히 일치하지 않음
from django.shortcuts import render_to_response
from models import CampSite
from geopy import geocoders
from django.contrib.gis.geos import *
from django.contrib.gis.measure import D
from campsites.forms import SearchForm
from django.http import HttpResponseRedirect
def results(request):
query = request.GET['q']
g = geocoders.Google(resource='maps')
location, (lat, lon) = g.geocode(query)
pnt = fromstr("POINT(%s %s)" % (lon, lat))
distance_from_point = {'mi':'2000'}
results = CampSite.objects.filter(lonlat__distance_lte=(pnt,D(**distance_from_point))).distance(pnt).order_by('distance')
return render_to_response('results.html',{'location': location, 'lat': lat, 'lon': lon, 'results':results})
내가 온라인으로 발견 일반적인 솔루션은
location, (lat, lon) = g.geocode(query)
에
0
location, (lat, lon) = g.geocode(query, exactly_one=False)
그러나이 새로운 ValueError "WKT EWKT 및 HEXEWKB로 인식 할 수없는 문자열 또는 유니 코드 입력이 생성되었습니다."
이것은 내가 튜토리얼 밖에서하고있는 첫 번째 장고 프로젝트입니다. 이방인이되어 주셔서 감사합니다.