可以说我有这个APIViewDjango的REST框架APIRequestFactory申请对象有没有属性“query_params”
class Dummy(APIView):
def get(self, request):
return Response(data=request.query_params.get('uuid'))
为了测试它,我需要创建一个请求对象传递到get
功能
def test_dummy(self):
from rest_framework.test import APIRequestFactory
factory = APIRequestFactory()
request = factory.get('/?uuid=abcd')
DummyView().get(request)
它抱怨AttributeError: 'WSGIRequest' object has no attribute 'query_params'
仔细一看,工厂创建了一个WSGIRequest
实例,而不是DRF版本<class 'rest_framework.request.Request'>
。
>>> from rest_framework.test import APIRequestFactory
>>> factory = APIRequestFactory()
>>> request = factory.get('/')
>>> request.__class__
<class 'django.core.handlers.wsgi.WSGIRequest'>
对我来说:我在一个基于django类的视图中使用了一个序列化器,并得到了上面提到的异常。 reasion:non-drf请求被发送到序列化上下文/ – patroqueeet 2015-12-16 20:36:18