无法在视图中获取Ajax Post数据

时间:2018-11-08 20:47:12

标签: python jquery ajax django

我正在发送发布请求以查看。一切都很好,但是ajax没有发送任何数据。在ajax调用中,我检查了变量是否存在数据,但在视图中发送时不存在数据。

我的ajax是

  $.post({
                url: '/projpost/message/{{project.id}}',
                data: {
                'message': message
                },
                success: function (data) {
                    alert(message);   //working perfect


                }
            });

可见

@csrf_exempt
def message(request,id):
    print(request.POST['message'])
    return HttpResponse(content_type="application/json" )

但是我遇到了错误

MultiValueDictKeyError at /projpost/message/5/
'message'

2 个答案:

答案 0 :(得分:1)

尝试:

@csrf_exempt
def message(request,id):
    print(request.POST.get('message'))
    # or print(request.POST.get('message', ''))
    return HttpResponse(content_type="application/json" )

但是,如果您发现request.POST为空,那么您将只需要处理 request ,而不是request.POST

答案 1 :(得分:1)

数据在SELECT (CASE WHEN a.promotionflag = 0 THEN 'NoPromotion' WHEN Sales/NULLIF(Margin, 0) > -3.0000 AND (Sales)/NULLIF(Funding, 0) < 0 THEN 'RED' WHEN Sales < 0 THEN 'RED' WHEN Sales = 0 and Margin < 0 THEN 'RED' WHEN Sales/NULLIF(Margin, 0) >= 0 THEN 'GREEN' WHEN Sales IS NULL THEN 'NonPriority' WHEN Margin IS NULL THEN 'NonPriority' ELSE 'YELLOW' END) AS Promotions 中。

request.data仅在提交表单或将标题设置为看起来像表单提交时填充。