【问题标题】:Django returns invalid ajax responseDjango 返回无效的 ajax 响应
【发布时间】:2015-07-08 13:11:30
【问题描述】:

我的 django 模板文件中有一个 ajax 调用:

$(document).ready(function () {
    $("button#wdsubmit").click(function(){
        $.ajax({
            type: "post",
            url: "/audit/addwd/",
            data: $('form.wddetails').serialize(),
            dataType: "json",
            success: function(msg){
            alert(msg);
               alert('Added Successfully');
                $("#newwd").modal('hide'); //hide popup
            },
            error: function(msg){
                alert(msg.success);
            }
        });
    });
});

表格:

class WDForm(ModelForm):
    class Meta:
        model = WDModel
        fields = '__all__'

django 中的视图是:

def addwd(request):
        if request.method == 'POST':
            updated_request = request.POST.copy()
            updated_request.update({'updated_by': request.user.username})
            form = WDForm(updated_request)
            if form.is_valid():
                form.save()
                response = simplejson.dumps({'success': True})
                return HttpResponse(response, content_type="application/json", mimetype='application/json')
            else:
                response = simplejson.dumps({'error': True})
                return HttpResponse(response , content_type="application/json")

每当我进行 Ajax 调用时,它总是返回错误,即使我已发送 Success(表示表单有效且数据已成功推送到数据库)。

我也尝试发送 response={'success':True} 不起作用。

请帮我解决这个问题。

环境细节: Python版本:3.4 姜戈:1.7 视窗操作系统 8

我怀疑这条线“response = simplejson.dumps({'success': success}) "

【问题讨论】:

  • 您需要出示您的form,您的两次尝试都可能导致表单失败。另外,请在if 块之后修复您的缩进。
  • @Anzel 表单没有失败,正如我在问题中提到的数据已成功保存到数据库中(这意味着 form.is_valid 为真)
  • 那么success 的值是从哪里来的呢?或者你只是错过了字符串周围的引号?您需要显示代码中的实际内容。此外,当您进行 ajax 调用时,检查它也更有意义。 假设你的一些代码是邪恶的

标签: python ajax django


【解决方案1】:

你可以试试JsonResponse对象。

from django.http import JsonResponse
return JsonResponse({'foo':'bar'})

【讨论】:

  • 感谢您的快速回复。我为解决这个问题付出了很多努力,并花了一整天的时间来解决这个问题。我仍然不知道 simplejson.dumps() 或 json.dumps() 函数有什么问题
猜你喜欢
  • 1970-01-01
  • 2012-04-26
  • 1970-01-01
  • 1970-01-01
  • 2014-09-27
  • 1970-01-01
  • 2019-05-26
  • 2015-05-04
  • 1970-01-01
相关资源
最近更新 更多