2010-02-13 75 views
2

我创建了一个表单,用于在我们的Web管理员中添加有关客户的备注。我正在使用jQuery和Ajax来提交for。我希望Django视图返回新添加的note/record,以便将其附加到customer notes表中。我的Ajax发送正在工作,笔记正在保存,我无法显示结果。Django返回单个记录为JSON

我曾尝试以下3条线(分别):

serializers.serialize("json", Note.objects.get(id=new_note.id)) 
serializers.serialize("json", new_note) 
return HttpResponse(simplejson.dumps(new_note), mimetype='application/javascript') 

第一2各自产生:

'Note' object is not iterable 

而且第三人给我:

<Note: Note object> is not JSON serializable 

我实际上并不关心我返回对象的格式,只要我可以使用jQuery接收和显示记录的每个字段。

谢谢。

回答

9

the docs

的参数到serialize函数是串行化的数据(见序列化格式)和一个QuerySet序列化格式。

使用filter()而不是get()

+0

感谢。我读了文档,看到它必须是一个查询集,我没有意识到它可以与.filter()一起使用。 – mhost 2010-02-13 02:17:04

+1

我真的认为neoprolog的答案正是你在这种情况下寻找的。不是每个人都有他们想要序列化时想要使用的查询集。 – JamesD 2012-02-16 03:17:14

9

用途:

serializers.serialize("json", [new_note]) 

(注意平方左右的查询对象括号)