Django restframework获取WSGIRequest而不是rest_framework.request.Request

时间:2017-02-17 16:46:01

标签: python django

我正在使用django 1.8和djangorestframework创建一个rest api,并使用extjs 6.2创建客户端,当我向服务器发送ajax请求时,我收到此错误 的' WSGIRequest'对象没有属性' query_params' 我的视图正在接收WSGIRequest对象而不是Request  对象,困扰我的是我现在在创建任何视图时遇到此错误,所有其他(以前创建的)工作正常,这里是我的MIDDLEWARE_CLASSES

MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'corsheaders.middleware.CorsMiddleware',)

这里是django视图和extjs ajax请求

django视图

api_view(["GET"])
def testView(request):
    print(request.__class__)
    req = json.loads(request.query_params['array'])# here it gives the error 
    lolo = {"response":"data"}
    return JsonResponse(data, safe=False)

extjs Ajax请求

    var data = 'insert':{idlineapresupuesto_id:1, idusuario_id:1, nombre:"aaaaaa"}
Ext.Ajax.request({
    url :"http://127.0.0.1:8000/editarConcGastosView/?format=json",
    method: 'GET',
    dataType: 'json',
    params: {array: Ext.JSON.encode(data)},
    success : function(response){
    var jsonResp = Ext.util.JSON.decode(response.responseText);//Guarda en jsonResp la respuesta de la peticion

1 个答案:

答案 0 :(得分:0)

您没有正确使用装饰器:您需要@

@api_view(["GET"])
def testView(request):