Djangoクライアントの取得:TypeError:__ init __()は1つの位置引数を取りますが、2つが指定されました

sg_sg94

私は次の簡単なテストをしています:

class DeviceListTests(APITestCase):
    def test_devices_list(self):
        self.user = UserFactory()
        self.device = DeviceFactory(name="SoundTalks_device")
        self.client.force_login(self.user)
        response = self.client.get(
            reverse("device-list")
        )

Python / Djangoは次のエラーを返します:

response = self.client.get(
                reverse("device-list")
            )

ただし、これは簡単なリクエストです。次のエラーが発生します。

Traceback (most recent call last):
  File "/opt/project/integrator_api/devices/tests/test_get_devices.py", line 15, in test_devices_list
    reverse("device-list")
  File "/usr/local/lib/python3.6/site-packages/rest_framework/test.py", line 286, in get
    response = super().get(path, data=data, **extra)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/test.py", line 203, in get
    return self.generic('GET', path, **r)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/test.py", line 232, in generic
    method, path, data, content_type, secure, **extra)
  File "/usr/local/lib/python3.6/site-packages/django/test/client.py", line 422, in generic
    return self.request(**r)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/test.py", line 283, in request
    return super().request(**kwargs)
  File "/usr/local/lib/python3.6/site-packages/rest_framework/test.py", line 235, in request
    request = super().request(**kwargs)
  File "/usr/local/lib/python3.6/site-packages/django/test/client.py", line 503, in request
    raise exc_value
  File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
TypeError: __init__() takes 1 positional argument but 2 were given

app_1      | 
app_1      | Aborting on container exit...
Stopping integrator-api_app_1   ... 
Stopping integrator-api_app_1   ... done
Process finished with exit code 1

devices / urls.py

from django.conf.urls import url
from rest_framework.urlpatterns import format_suffix_patterns

from integrator_api.devices.views.device_list_view import DeviceListView

urlpatterns = format_suffix_patterns(
    [
        url(r"^$", DeviceListView, name="device-list"),
    ]
)

integrator_api / urls.py(プロジェクトのURL)

from django.urls import path, include
from integrator_api.devices import urls as device_urls


urlpatterns = [
    path("devices/", include(device_urls)),
]
Kurosh Ghanizadeh

'DeviceListView'はクラスベースのビューだと思うので、次のように 'as_view()'を使用してurlpatterns内を呼び出す必要があります。

# urls.py
urlpatterns = format_suffix_patterns(
[
    url(r"^$", DeviceListView.as_view(), name="device-list"),
])

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ