3
我想用Django与jquery UI autocomplete,但无法发送响应。Python:列表到JSON
这里是我的代码:
def ajax_tags_autocomplete(request):
""" Autocomplete for tag list """
beginning_of_title = request.GET.get('term', '')
tags_found = Tag.objects.values_list('title', flat=True).filter(title__startswith=beginning_of_title)
return HttpResponse(json.dumps(tags_found), mimetype='application/json')
我得到一个错误:
[u"php"] is not JSON serializable
为什么?不可能序列化一个列表?那么我应该传递给序列化程序呢?
我会很乐意提供任何建议。
它,其实,成功了!你能解释那里发生了什么吗?我确信'values_list('title',flat = True)'给了我一个正常的单子列表或字符串。 – 2011-05-19 09:25:44
'values_list()'仅在评估后返回列表。除非你评估它('list(tags_found)'是最简单的方法),它将是queryset,它不是JSON可序列化的。 – DrTyrsa 2011-05-19 09:29:24
不,我对Django或其ORM并不熟悉。但是,因为它的工作,这意味着Django返回一个(可能是普通的)列表,其中包含一些不是普通的str/unicode对象的对象。 – ThiefMaster 2011-05-19 09:30:50