迷失在Django和jQuery UI自动完成的土地

neo*_*jay 4 django jquery-ui jquery-ui-autocomplete

我正在尝试学习Django,遵循旧Django书中的教程,我目前仍然坚持在我的应用程序中为单个字段实现jquery ui自动完成.我在这个问题上做了很多搜索只是为了让自己更加困惑.所以这是有问题的代码.

urls.py

  `(r'^ajax/tag/autocomplete/$', ajax_tag_autocomplete),`
Run Code Online (Sandbox Code Playgroud)

tag_autocomplete.js

$(document).ready(function () {
    $("#id_tags").autocomplete({
        source: "/ajax/tag/autocomplete/",
    });
});
Run Code Online (Sandbox Code Playgroud)

views.py

def ajax_tag_autocomplete(request):
    if 'term' in request.GET:
        tags = Tag.objects.filter(
            name__istartswith=request.GET['term']
        )[:10]
        return HttpResponse(u'\n'.join(tag.name for tag in tags))
    return HttpResponse()
Run Code Online (Sandbox Code Playgroud)

因此,当我浏览我的应用程序并开始在此标记字段中键入字符时,我没有显示任何内容,也没有显示任何列表.然而,firebug告诉我代码正在执行查询并且它返回正确的结果.我错过了什么简单的事情?

cza*_*aic 6

正如Minras在他的评论中所说,你的视图应该返回一个字符串或对象的JSON数组来填充数据.

from django.utils import simplejson
Run Code Online (Sandbox Code Playgroud)

返回一个json数组

return HttpResponse( simplejson.dumps( [ tag.name for tag in tags ] ) )
Run Code Online (Sandbox Code Playgroud)