使用Django数据库/模型的jQuery自动完成插件

使用Django数据库/模型的jQuery自动完成插件,jquery,django,jquery-autocomplete,Jquery,Django,Jquery Autocomplete,有人知道如何在Django中实现,使用数据库而不是本地值吗 具体来说,我想实现页面底部提到的“搜索页面替换”功能,数据集将包含大约1000个或更多条目,但我无法确定如何使其与数据库的必要字段交互 (我也在寻找一个好的Python/Django搜索解决方案用于我的网站——这只是一个非常简单的网站。) 谢谢您的帮助。我最近用jQuery.autocomplete做了一些事情,只使用了一个模型 用户开始写入名称时seach city的功能性: 根据jqueryui文档,要使工作自动完成,您需要如下输

有人知道如何在Django中实现,使用数据库而不是本地值吗

具体来说,我想实现页面底部提到的“搜索页面替换”功能,数据集将包含大约1000个或更多条目,但我无法确定如何使其与数据库的必要字段交互

(我也在寻找一个好的Python/Django搜索解决方案用于我的网站——这只是一个非常简单的网站。)



谢谢您的帮助。

我最近用jQuery.autocomplete做了一些事情,只使用了一个模型

用户开始写入名称时seach city的功能性:

根据jqueryui文档,要使工作自动完成,您需要如下输入:

<input id="n" type="text" name="n"/>
要解析该URL,必须在URL.py中编写类似的内容

urlpatterns = patterns('cities.views',
    url(r'^autocomplete_city/$', 'autocomplete_city', name='autocomplete_city'),
)
这意味着我有类似cities.views.autocomplete\u city view的功能:

def autocomplete_city(request):
    term = request.GET.get('term') #jquery-ui.autocomplete parameter
    cities = City.objects.filter(name__istartswith=term) #lookup for a city
    res = []
    for c in cities:
         #make dict with the metadatas that jquery-ui.autocomple needs (the documentation is your friend)
         dict = {'id':c.id, 'label':c.__unicode__(), 'value':c.__unicode__()}
         res.append(dict)
    return HttpResponse(simplejson.dumps(res))

你还需要什么?开始测试并记住文档是你的朋友请先尝试为自己制作,谷歌搜索,阅读文档,尝试3次,如果不能,stackoverflow是你的朋友。

这是为jqueryUI autocomplete准备的,不是他链接到的插件,但不管怎样都很好。我建议他也使用jqueryui!Jonathan,如果你想使用该插件,唯一需要做的更改是GET参数是'q',结果应该是由
|
分隔的纯文本键值对,每对键值对在一行上。谢谢你的回答。我曾尝试使用Jquery,但目前我真的很难让它正确地使用远程源代码。我可以让它使用本地数据,但当我将源更改为(视图的)url时,它永远不会访问该视图。你能想出这样做的原因吗?我对上面提到的问题提出了一个单独的问题:我看到dict有像
id
label
value
这样的键。如何说,打印到控制台,与所选元素的数据库id相对应的id?这很重要,因为我使用ID来过滤其他请求。我尝试了
console.log($(“#myinput”).id)
,但没有帮助。谢谢。下面的问题回答了我上面的问题:
def autocomplete_city(request):
    term = request.GET.get('term') #jquery-ui.autocomplete parameter
    cities = City.objects.filter(name__istartswith=term) #lookup for a city
    res = []
    for c in cities:
         #make dict with the metadatas that jquery-ui.autocomple needs (the documentation is your friend)
         dict = {'id':c.id, 'label':c.__unicode__(), 'value':c.__unicode__()}
         res.append(dict)
    return HttpResponse(simplejson.dumps(res))