Невозможно отобразить объект списка, полученный из python dajngo -view в ajax autocomplete - PullRequest
0 голосов
/ 10 июля 2019

Я передаю объект списка из представления в автозаполнение ajax в шаблоне, но не могу отобразить автомобили, найденные в раскрывающемся списке

Я передаю объект списка как «Автомобили не найдены», если нетобъекты, найденные в дБ, и, если они найдены, соответствующие объекты отправляются. Но я мог видеть, что объекты БД отображаются в раскрывающемся списке, но «Нет найденных машин» не отображается в раскрывающемся списке, когда объекты не найдены.

    <
script type = "text/javascript" >

    jQuery(function complete() {
        $(".basicAutoComplete").on('keyup', function() {

            var value = $(this).val();
            $.ajax({
                url: "{% url 'ajax_autocomplete' %}",
                data: {
                    'search': value
                },
                dataType: 'json',

                success: function(data) {
                    var carslist = data.list;    

                    list = carslist;

                    $(".basicAutoComplete").autocomplete({
                        source: list,
                        minLength: 2,

                    });

                }
            });
        });
    });

<
/script>

Вид

def autocomplete(request):   
    if request.is_ajax():
        q=request.GET.get('search')
        queryset = Cars.objects.filter(car_model__istartswith=q).values('car_model')

        list = []        
        for i in queryset:
            list.append(i['car_model'])       


        if not list:
                list.append('No Cars Found')

        data = {
            'list': list,
        }
        return JsonResponse(data)

Мне не нужно найти автомобили, которые будут отображаться в раскрывающемся списке, когда в базе данных не найдено ни одного подходящего автомобиля.

1 Ответ

0 голосов
/ 11 июля 2019

Прочитайте концепцию автозаполнения в запросе и благодаря Jquery Autocomplete - без результата сообщение Использовал функцию для источника

  $(".basicAutoComplete").autocomplete({
        source: function(request, response) {
            var results = $.ui.autocomplete.filter(list, request.term);
        if (!results.length) {
            results = [NoResultsLabel];
        }

        response(results);
    },
    minLength: 2,

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...