如何序列化django中的字典以在Jquery中呈现[问题级别 - 初学者]

时间:2011-03-19 12:31:18

标签: jquery ajax django json serialization

要序列化的字典 - form.errors

e.g。查看 -

form = PersonalForm(request.POST)
# errors = serializing function which serializes form.errors
data = errors 
#Is this the way to pass data? Not quite sure....
return HttpResponse(data,mimetype="application/json")

e.g。 javascript(请求成功时) -

function(responseData) {
     $('#errors_form').html(responseData);
                },

现在我该如何做这些朋友?

3 个答案:

答案 0 :(得分:3)

import json

data = json.dumps(errors)

return HttpResponse(data,mimetype="application/json")

您正在询问如何将字典转换为JSON对象,因此您的jQuery / javascript可以读取它。 json.dumps允许这种情况发生。

答案 1 :(得分:0)

您需要查看两个地方的错误。

有“非字段错误”:

form.non_field_errors

基于字段的错误,例如名称字段:

form.name.errors

根据表单的复杂程度,您可以将错误引用为json中的单个错误,或者创建一个组合它们的小型python脚本。我实际上没有运行代码,但认为这对你有用:

errors = []
errors = errors + form.non_field_errors

for field in form:
    errors = errors + field.errors

if len(errors) > 0 :
    data = json.dumps({"response_text": "Errors Detected", "errors" : errors})

答案 2 :(得分:0)

这里没有挑剔,但你真的确认了你的表格吗?

form.is_valid()