***TypeError:\uu init\uuuu()只接受1个参数(给定2个);APIRequestFactory

2024-06-13 19:31:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在跟踪http://www.django-rest-framework.org/api-guide/testing/的测试模式,但它不起作用。我有如下视图和url

视图:

class BenchView(APIView):

    def get(self, request, format=None):

网址:

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)

正在运行测试。请求应计为一个参数,为什么此响应不起作用?谢谢你


Tags: djangoselfview视图httpurlgetrequest
1条回答
网友
1楼 · 发布于 2024-06-13 19:31:12

看起来你应该:

bv = BenchView()
response = bv.get(request)

我认为问题在于BenchView.__init__不接受任何参数,您希望调用BenchView.get,因为它接受请求作为第一个位置参数。

或者可能:

self.view(request)

与链接的文档保持一致。

相关问题 更多 >