这是我的views.py
def map(request):
ngos_addr = []
loc = ""
if request.method == 'POST':
loc = request.POST.get('location', '')
#In this I want to send the location loc to the api
query_result = google_places.nearby_search(
location=loc, keyword='ngos and non profit organizations',
radius=20000)
for place in query_result.places:
place.get_details()
#Create list having all nearby ngos addresses
ngos_addr.append (place.formatted_address)
return render_to_response('display_map.html', {'location': ngos_addr}, context_instance=RequestContext(request))
这是我在模板中的display_map.html
<body>
{% if location == '' %}
<h2>Enter your location</h2>
<form action="/map" method="POST">
{% csrf_token %}
{{ form }}
<input type='input' value="" name='location'/>
</form>
{% else %}
{% load easy_maps_tags %}
<!--Some for to iterate over list and show the map?-->
<!-- Default map with 600x600 dimensions -->
<!-- I also tried this to simply show a map for a single location
which the user eneterd using loc variable, but it didn't work-->
{% easy_map location 600 600 using "easy_maps/map.html" %}
{% endif %}
我想将loc传递给它,以便它显示用户给出的loc的地图。
如果我在
中输入某个位置,它就有效query_result = google_places.nearby_search(
location="Delhi, India", keyword='ngos and non profit
organizations',radius=20000)
但是如果我从request.POST.get获取它,并将变量分配给上面的代码中的位置。
但是当我使用loc(一个变量)来分配东西时,它会给我this错误。我检查了类型(loc),甚至尝试将其更改为str,但它仍然没有传递该值并且弹出错误。
为什么会出现此错误,这有什么问题?
我还想在同一张地图中显示由ngos_addr列表返回的多个标记(其中包含附近的ngos的地址),在Django easy maps中有什么办法可以做到这一点吗?或者他们还有其他选择吗?
我正在使用Google Places API的Python 2.7.3,Django 1.6.2,Python Google Places包装。