*** TypeError: __init__() takes exactly 1 argument (2 given); APIRequestFactory
*** TypeError: __init__() takes exactly 1 argument (2 given); APIRequestFactory
我正在按照 http://www.django-rest-framework.org/api-guide/testing/ 上的测试模式进行操作,但它不起作用。我的观点和url如下
查看:
class BenchView(APIView):
def get(self, request, format=None):
urls:
urlpatterns = patterns(
'db.views',
url(r'^bench', BenchView.as_view()),
)
测试:
class BenchViewTests(TestCase):
def setUp(self):
self.request_factory = APIRequestFactory()
self.view = BenchView.as_view()
def test_results(self):
request = self.request_factory.get('/base/bench')
response = BenchView(request)
我明白了
*** TypeError: __init__() takes exactly 1 argument (2 given)
运行 测试。该请求应算作一个参数,为什么此响应不起作用?谢谢
看起来你应该有:
bv = BenchView()
response = bv.get(request)
我认为问题是 BenchView.__init__
没有参数,你想调用 BenchView.get
因为它接受请求作为第一个位置参数。
或者也许:
self.view(request)
与链接文档保持一致。
我正在按照 http://www.django-rest-framework.org/api-guide/testing/ 上的测试模式进行操作,但它不起作用。我的观点和url如下
查看:
class BenchView(APIView):
def get(self, request, format=None):
urls:
urlpatterns = patterns(
'db.views',
url(r'^bench', BenchView.as_view()),
)
测试:
class BenchViewTests(TestCase):
def setUp(self):
self.request_factory = APIRequestFactory()
self.view = BenchView.as_view()
def test_results(self):
request = self.request_factory.get('/base/bench')
response = BenchView(request)
我明白了
*** TypeError: __init__() takes exactly 1 argument (2 given)
运行 测试。该请求应算作一个参数,为什么此响应不起作用?谢谢
看起来你应该有:
bv = BenchView()
response = bv.get(request)
我认为问题是 BenchView.__init__
没有参数,你想调用 BenchView.get
因为它接受请求作为第一个位置参数。
或者也许:
self.view(request)
与链接文档保持一致。