我正在尝试从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
答案 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'),
]