Jquery Django可选-在焦点上显示自动完成选项
我想在焦点上显示自动完成选项。若输入值为空,我想显示所有选项。我想要的行为相当于以下效果:Jquery Django可选-在焦点上显示自动完成选项,jquery,python,django,jquery-ui,Jquery,Python,Django,Jquery Ui,我想在焦点上显示自动完成选项。若输入值为空,我想显示所有选项。我想要的行为相当于以下效果: <!DOCTYPE html> <html> <head> <meta charset=utf-8/> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jque
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8/>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
</head>
<body>
<input id="text" type="text"></input>
<script>
$(
function() {
$('#text').autocomplete(
{ source: ['abc', 'bcd', 'cde'], minLength: 0 }
).focus(function() { $(this).autocomplete('search'); });
}
);
</script>
</body>
</html>
$(
函数(){
$('#text')。自动完成(
{来源:['abc','bcd','cde'],最小长度:0}
).focus(函数(){$(this).autocomplete('search');});
}
);
如何使用Django Selective实现这一点?您是否有机会阅读自动完成的文档 特别是关于期权 基本上,您需要在您的终端上创建一个服务,该服务将返回JSON格式的数据,它可以是字符串列表([“Choice1”,“Choice2”]),带有“label”和“value”键的记录列表([{label:“Choice1”,value:“value1”},…]),或者任何其他数据-在这种情况下,您需要另外编写数据解析函数 对于搜索功能,您的服务应该接受“term”查询参数(例如:) 要在Django中编写此代码,请创建一个视图(基于类或不基于类),该视图将响应GET请求、查询数据库并返回格式为JSON的数据(响应中包含正确的内容/类型标题)
这并不是问题的答案——问题是如何在焦点和键入后显示自动完成选项,这样用户就不必键入来获得一些基本选项。
class MyDict(models.Model):
name = models.CharField(max_length=100, db_index=True)
class Meta:
ordering = ['name']
def search_view(request):
term = request.get('term')
search = {}
if term:
search['name__icontain'] = term
# we are limiting answers to not dump whole db over the ajax
# user has a possibility to narrow search
result = [{'label': o.name, 'value': o.name} for o in MyDict.objects.filter(**search)[:50]]
return HttpResponse(json.dumps(result), mimetype='application/json')