2015-02-12 54 views
-2

这是我的views.py的JavaScript不承认Python列表

from django.utils import simplejson 
from django.core import serializers 

def get_contacts(request): 
    context = RequestContext(request) 
    cat_list = [] 

     cat_list = contact.objects.all() 
     friend_list=serializers.serialize('json',cat_list) 
     return HttpResponse(friend_list,mimetype="application/json") 

,这是我的js

$.get('/share_win/get_contacts/', function(data) { 
    alert(data); 
    $("#search").autocomplete({ 
     source: data 
    }); 
}).fail(function(error) { 
    alert('error'); 
}); 

运行警报(数据)后类型[对象的对象],.. [object Object],但它应该打印name1而不是Object。 任何想法?

+1

为什么你到底是混合Django和烧瓶。另外,你的'RequestContext'?为什么你检查'request.method'的函数甚至不会被调用任何不是GET的东西? – ThiefMaster 2015-02-12 08:05:02

+0

什么是*联系人*? – dzida 2015-02-12 08:05:35

+0

最重要的是:什么是'自动完成' – 2015-02-12 08:07:11

回答

1

我想你想返回一个字符串列表而不是对象。如果是这样,然后使用values_list()方法和使用simplejson“串行化”此列表:

cat_list = contact.objects.all().values_list('name', flat=True) 
friend_list = simplejson.dumps(list(cat_list)) 

namecontact模型领域。

+0

添加values_list后我收到以下错误AttributeError:'unicode'对象没有属性'_meta ' – gjivanya 2015-02-12 08:41:27

+0

使用'simplejson'而不是'serialize()'。查看更新后的答案。 – catavaran 2015-02-12 08:50:03

+0

它的工作原理。感谢一批@catavaran – gjivanya 2015-02-12 08:56:10

0

快讯的我会说试试这个, 但我严重不理解你的代码,

$.get('/share_win/get_contacts/', function(e) { 
    alert(JSON.parse(e.data)); 
    $("#search").autocomplete({ 
     source: data 
    }); 
}).fail(function(error) { 
    alert('error'); 
});