直接在google places_search中使用来自request.post的数据时出错

时间:2015-03-06 18:15:40

标签: django google-places-api google-geocoder

这是我的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包装。

0 个答案:

没有答案