使用Django的Javascript自动完成函数
我一直在尝试将javascript自动完成函数与Django/Python数组一起使用,但始终无法使其正常工作。以下是我的模板脚本:使用Django的Javascript自动完成函数,javascript,jquery,python,django,json,Javascript,Jquery,Python,Django,Json,我一直在尝试将javascript自动完成函数与Django/Python数组一起使用,但始终无法使其正常工作。以下是我的模板脚本: <script> $(function() { var availableTags = "{{bandas.ba_nombre}}" $( "#tags" ).autocomplete({ source: availableTags }); });
<script>
$(function() {
var availableTags = "{{bandas.ba_nombre}}"
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>
还有我的剧本:
<script>
$(function() {
var availableTags = jQuery.parseJSON('{{bandas.ba_nombre|jsonify }}');
alert(availableTags.length);
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>
$(函数(){
var availableTags=jQuery.parseJSON({{bandas.ba|u nombre | jsonify}}});
警报(可用标记长度);
$(“#标记”).autocomplete({
资料来源:availableTags
});
});
还有别的办法吗?或者我做错了什么?我会说使用Django自动完成灯光 开始学习有点棘手,但之后会有助于自动完成字段的生成
我有一些与django一起使用jQuery UI autocomplete的经验,并发现两者结合存在一个普遍问题。本质上,这是因为您无法发送部分为JSON的响应,因此您可以返回jQueryUI的正确格式的可用_标记,或者使用另一个只返回标记的函数。给你举一个这两种方法的例子
available_tags = ['example', 1, 2, 'test']
return render_to_response('mytemplate.html', {'available_tags': repr(available_tags) })
def main(request):
...
return render_to_response('mytemplate.html')
def get_tags(request):
data = {'example': 1, 'code': 2}
return HttpResponse(json.dumps(data), content_type="application/json")
客户端:
$( "#tags" ).autocomplete({
source: {{ availableTags }} //notice I didn't put '' around it...
});
var available_tags = $.get('get_tags/', function(data) { ...parse the json and whatnot... });
available_tags = ['example', 1, 2, 'test']
return render_to_response('mytemplate.html', {'available_tags': repr(available_tags) })
def main(request):
...
return render_to_response('mytemplate.html')
def get_tags(request):
data = {'example': 1, 'code': 2}
return HttpResponse(json.dumps(data), content_type="application/json")
客户端:
$( "#tags" ).autocomplete({
source: {{ availableTags }} //notice I didn't put '' around it...
});
var available_tags = $.get('get_tags/', function(data) { ...parse the json and whatnot... });
当然,第二个选项更值得推荐,但有时我也会使用第一个选项。您可能需要对其进行更改,并以稍微不同的方式使用它(repr可能会有问题,尤其是使用unicode等),但这是一个反复尝试的过程,您会明白这一点。谢谢,我会检查它!