在Django视图中清空request.POST

时间:2017-09-15 18:31:42

标签: python django post

向以下视图发送POST请求时,request.POST字典为空:

@csrf_exempt
def created_query(request):
    if request.method == 'POST':
        print(request.POST)
        server = get_object_or_404(Server, pk=request.POST['server'])
        if server.owner == request.user:
            if server.created:
                return HttpResponse("created")
            else:
                return HttpResponse("pending")
        else:
            return HttpResponseForbidden
    else:
        return HttpResponseForbidden

我尝试了多种生成POST请求的方法,例如此cURL请求:

curl --request POST \
--url http://localhost:80/created/ \
--form server=60 \
--form action=created

我已经使用调试器检查了字典,只是打印它并且它总是空的。我怀疑这是urls.py的问题,但是这里是文件中处理此视图的行:

url(r'^created/', views.created_query, name='created'),

我们已经尝试过的事情:

1 个答案:

答案 0 :(得分:2)

从Django 1.5开始,POST不再包含非表单数据。

您可以使用request.body