'Djang中的Autocomplete jquery'

2024-05-19 02:25:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Django上的站点中使用了autocomplete,但是输出数据有问题。我有数据库(所有城市在俄罗斯)和搜索领域从这个城市

  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
$(function() {
        $( "#automplete-2" ).autocomplete({
           source: '/asearch/',
           minLength:2,
           autoFocus:true
        });
     });

<input class="city_search" name="city" id = "automplete-2" placeholder="Введите город"> 

视图.py:

def autocomplete(request):
if request.method == 'GET':
    list = City.objects.filter(title__istartswith=request.GET.get('term', None)).values_list('title', flat=True)
    results = ''
    if list:
        for l in list:
            results = results + "%s\n" % (l)
        return HttpResponse(results)
    else:
        return HttpResponse('Не правильная раскладка', content_type="text/plain")

当我从服务器收到响应时,它被放在一行中。一条线上有几个城市。我需要每个城市都有一条单独的线路。怎么做?求求你,救命啊) http://promspros.ru/第三个字段,但只有西里尔文

<li class="ui-menu-item"><div id="ui-id-13" tabindex="-1" class="ui-menu-item-wrapper">Пятиверстица Пятигорская Пятигорский Пятигоры Пятидворка Пятидорожное Пятиизбянский Пятиморск


Tags: httpssrccomiduirequestjsscript
2条回答

我不知道你到底想做什么,因为我不懂俄语,但我认为问题是你在python程序中使用'\n'生成新行,但html不把它理解为新行。尝试用<br/>替换它。那可能有用

如果您查看this jQuery autocomplete example的源代码,就会发现source参数实际上使用的是一个列表

因此,视图应该返回字符串的JSON列表(目前,它只返回一个字符串)。这可以通过以下方式实现:

from django.http import JsonResponse

def autocomplete(request):
    if request.method == 'GET':
        cities = City.objects.filter(title__istartswith=request.GET.get('term', None)).values_list('title', flat=True)
        if cities:
            return JsonResponse(cities)
        else:
            return HttpResponse('Не правильная раскладка', content_type="text/plain")

关于源参数的更多信息可以在这里找到:http://api.jqueryui.com/autocomplete/#option-source

相关问题 更多 >

    热门问题