Pregunta

Tengo el mismo problema que el que respondió aquí: Transliteración en TypeAhead.js

Pero no puedo usar la solución en la respuesta porque la lista de sugerencias es dinámica! ¿Hay alguna manera de dejar que el usuario use carácter no ASCII (é, à, è, ë, etc.) en su consulta?

¿Fue útil?

Solución

Esta es la solución A encontrada:

html

$('.typeahead').typeahead(
        {
            minLength: 3,
        },
        {
            name: 'place',
            displayKey: 'city',
            source: function (query, process) {
                return $.get("{% url 'profil:search_place_request' search_term='user-query' %}".replace('user-query', query), { query: query }, function (data) { 
                    objects = [];
                    $.each(data, function(i, object) {
                        objects.push({
                            city : object.city,
                            zipcode : object.zipcode,
                            id : object.id,
                        });
                    });
                    return process(objects);
                });
            }
        }
    );

Ver

@login_required
def search_place_request(request, search_term):
    search_term = search_term.encode("utf-8")
    response, response_dict = selfcare.libs.core.utils.MyAPIRequests.get("place/?term={}".format(search_term))
    if response.ok :
        log.info('[profil] request GET places. Search term : {},  USER : {}'.format(search_term, request.user.username))
        return HttpResponse(json.dumps(response_dict['results']), content_type="application/json") 
    else :
        log.warning('[profil] request DELETE customer address failed. Status code : {}, USER: {}'.format(response.status_code, request.user.username))
        return HttpResponse("", content_type="application/json") 
    return HttpResponse("", content_type="application/json")

¡Codeo explícitamente en UTF8 en mi opinión, y hizo el truco!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top