我的自动完成表格工作正常,即。它可以正确完成数据。现在,我希望该数据可访问->将我链接到有效的网址。我试图让它自己工作,但是我碰壁了。
有人可以给我一个提示或链接作为工作示例。感谢您的时间。
views.py
def paper_autocompleate(request):
if request.is_ajax():
q = request.GET.get('term', '')
autoPaperwork = Paperwork.objects.filter(
Q(title__icontains=q) | Q(description__icontains=q))[:10]
results = []
for p in autoPaperwork:
p_json = {}
p_json = p.title
results.append(p_json)
data = json.dumps(results)
else:
data = 'fail'
mimetype = 'application/json'
return HttpResponse(data, mimetype)
urls.py
urlpatterns = patterns('',
url(r'^api/paper_autocompleate/', 'papers.views.paper_autocompleate', name='paper_autocompleate')
)
JQAuto.js
$(function() {
$("#autoPaperwork").autocomplete({
source: "/api/paper_autocompleate/",
minLength: 2,
});
});
index.html
<div class="ui-widget">
<input id="autoPaperwork">
</div>
尚未测试,但我认为您需要这样做:
def paper_autocompleate(request):
if request.is_ajax():
q = request.GET.get('term', '')
autoPaperwork = Paperwork.objects.filter(
Q(title__icontains=q) | Q(description__icontains=q))[:10]
results = []
for p in autoPaperwork:
results.append(p.title)
data = json.dumps(results)
else:
data = 'fail'
mimetype = 'application/json'
return HttpResponse(data, content-type=mimetype)
不知道您p_json
在做什么,但是我的JQuery-UI自动完成功能是通过jsut的简单json列表工作的
["result 1", "result 2"]
我通过使用得到 json.dumps(<python_list_object>)
编辑:这是我对任何数据库对象字段进行通用自动排序的代码
obj = apps.get_model(app_label=app_name, model_name=model_name)
#obj = locate('LessonApp.models.%s' % otype) # old way of locating
try:
search_list = list(obj.objects.\
exclude(Q(**{field: ''}) | Q(**{'{0}__isnull'.format(field): True})).\
values_list(field, flat=True).distinct().order_by(field))
if q:
search_list = filter(lambda s: s[:len(q)].lower() == q.lower(), search_list) # search the list for q, ignore case
return HttpResponse(json.dumps(search_list), content_type='application/json')
except Exception as ex:
return HttpResponse('{"result": "error", "error": "DB Error\n%s"}' % ex, content_type='application/json')
编辑:这是我的JavaScript来调用我的输入
$('#id_group_name').autocomplete({
source: "/autocomplete/cec_cms/CmsNews/group_name",
minLength: 0,
delay: 500 //default is 300
}).focus(function() {
$(this).autocomplete('search', $(this).val());
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句