我有一个 Django 对象(消息)列表,我正在尝试使用 Fuse.js ( http://kiro.me/projects/fuse.html ) 进行搜索。据我了解,Fuse 只接受 JSON 数组。我使用 Django 的序列化程序来序列化我的列表,然后 JSON 转储将新格式化的数据传递给我的 Django 模板。搜索似乎正在工作(有点),但它只返回索引而不是对象,我不知道为什么。此外,它仅在您一次搜索一个字符时才有效。请原谅我对这一切如此陌生。. . 如果我的问题甚至没有意义,请告诉我。这是我搜索字母“T”时控制台输出的示例。完整数组位于顶部,搜索结果为蓝色:
这是我的看法:
@login_required
def inbox(request, template_name='django_messages/inbox.html'):
message_list = Message.objects.inbox_for(request.user)
json_serialized_list = serializers.serialize("json", message_list)
return render_to_response(template_name, {
'message_list': message_list,
'json_list': json.dumps(json_serialized_list),
}, context_instance=RequestContext(request))
还有我的模板:
$(function(){
// testing a search with fuse.js
var json_list = {{ json_list|safe }}
console.log(json_list)
var options = {
keys: ['fields.subject'],
}
var f = new Fuse(json_list, options);
var result = f.search('t');
console.log(result)
});
有任何想法吗??:)