Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Django的Javascript自动完成函数_Javascript_Jquery_Python_Django_Json - Fatal编程技术网

使用Django的Javascript自动完成函数

使用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 }); });

我一直在尝试将javascript自动完成函数与Django/Python数组一起使用,但始终无法使其正常工作。以下是我的模板脚本:

    <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等),但这是一个反复尝试的过程,您会明白这一点。

    谢谢,我会检查它!