Я использовал маршрутизаторы для создания URL-адресов, теперь я хочу создать URL-адреса для моего API, но проблема в том, что я получаю сообщение об ошибке
createuser () отсутствует 1 обязательный позиционный аргумент: 'request'missing1 обязательный позиционный аргумент: 'request'
Я получаю одинаковую ошибку для всех моих методов внутри класса UserAuthAPIView, я уже прочитал решения по stackoverflow, но они не работают в моем случае.
У меня есть много методов в классе UserAuthAPIView, и я хочу создать URL для всех них.
, например,
127.0.0.1:8000/api
127.0.0.1:8000/api/createuser
127.0.0.1:8000/api/login
127.0.0.1:8000/api/<pk>/viewuser
urls.py
from django.conf.urls import url
from UserAPI.api import views
from UserAPI.api.views import UserAuthAPIView
urlpatterns = [
url(r'^$', UserAuthAPIView.as_view({'get': 'list'}), name='user-list'),
url(r'createuser/$', views.UserAuthAPIView.createuser, name='user-create'),
#url(r'userlogin/$', views.UserAuthAPIView.userlogin, name='user-login'),
]
views.py
class UserAuthAPIView(ModelViewSet):
queryset = UserModel.objects.all()
serializer_class = ListViewSerializer
def get_object(self, queryset=None):
return self.request.user
@action(methods=['post'], detail=False, permission_classes=[AllowAny], serializer_class=UserSerializer)
def createuser(self, request, *args, **kwargs):
data = request.data
serializer = UserSerializer(data=data)
if serializer.is_valid():
serializer.save()
return Response({ "status" : "user created successfully"}, status=HTTP_201_CREATED)