Я использую googlemaps http://py -googlemaps.sourceforge.net / , чтобы показать некоторую информацию о путешествии. я посылаю start_address и end_address через форму и вычисляю маршрут на стороне сервера.
все работает нормально, когда я использую базовые символы ascii в адресе, но если я использую дикие хорватские символы, такие как 'čćšž' , я получаю "'ascii' кодек не может кодировать символ u ' \ u010d 'в положении ... ".
если я использую
from googlemaps import GoogleMaps
directions = GoogleMaps().directions(smart_str(start_address), smart_str(end_address))
как команда в оболочке работает нормально , но не при запуске через тестовый сервер на сайте.
start_address и end_address оба имеют тип Unicode.
так, как мне предположить, чтобы сформировать start_address для того, чтобы он работал правильно с целым юникодом?
Edit:
после того, как еще немного поигрался, вот код, который наконец-то работает:
from django.shortcuts import render_to_response
from django.utils.encoding import smart_unicode, smart_str
from googlemaps import GoogleMaps
def calculations(request):
if request.method == 'POST':
trip = {}
start_address = smart_str(request.POST.get('start_address'))
end_address = smart_str(request.POST.get('end_address'))
directions = GoogleMaps().directions(start_address, end_address)
trip['length'] = directions['Directions']['Distance']['html']
trip['duration'] = directions['Directions']['Duration']['html']
return render_to_response( 'index.html', {'trip':trip, }, context_instance = RequestContext(request) )
Вы можете считать вопрос закрытым:)