可以說我有這個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