__init __()接受1个位置参数,但给了2个django python

时间:2019-09-10 08:15:12

标签: python python-3.x django-rest-framework django-rest-framework-jwt

我正在尝试从api列出用户,并且也使用jwt身份验证,但是当我运行localhost:8000 / api /时出现此错误:

_init__() takes 1 positional argument but 2 were given

urls.py:

from django.urls import path,include
from . import views
from rest_framework_simplejwt.views import TokenObtainPairView,    TokenRefreshView




urlpatterns = [
    path('api/',views.UserViewSet, name = 'user_list'),
    path('token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
    path('token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
]

views.py:

class UserViewSet(viewsets.ModelViewSet):
queryset = User.object.all()
serializer_class = serializers.UserSerializers

1 个答案:

答案 0 :(得分:1)

对于ViewSet,您需要use .as_view() as well [drf-doc]

  

ViewSet的方法处理程序仅在完成视图时绑定到相应的操作,使用.as_view()方法

在您的urlpatterns中,青少年需要使用.as_view()

urlpatterns = [
    path('api/',views.UserViewSet.as_view(), name = 'user_list'),
    path('token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
    path('token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
]