【问题标题】:post() missing 1 required positional argument: 'request'post() 缺少 1 个必需的位置参数:“请求”
【发布时间】:2021-08-12 07:19:47
【问题描述】:

我的注册表有问题。就是当我通过邮递员发出请求时,它会抛出错误:post () missing 1 required positional argument: 'request'

我的网址:

from .views import UserRegistrationView

urlpatterns = [
    path('register', UserRegistrationView.post),
]

网址包括:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/user/', include('user.urls')),
] 

我的观点

from rest_framework import status
from rest_framework.generics import CreateAPIView
from rest_framework.response import Response
from rest_framework.permissions import AllowAny
from .serializers import UserRegistrationSerializer
from rest_framework.decorators import api_view

class UserRegistrationView(CreateAPIView):
    permission_classes = (AllowAny,)

    @api_view(('POST',))
    def post(self, request):
        serializer = UserRegistrationSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        serializer.save()
        status_code = status.HTTP_201_CREATED
        response = {
            'success' : 'True',
            'status code' : status_code,
            'message': 'User registered  successfully',
            }
        
        return Response(response, status=status_code)

我的邮递员发帖:

网址:http://127.0.0.1:8000/api/user/register

正文(原始):

{
 "email":"asdf@asdf.com",
 "password":"123456",
 "profile": {
        "first_name": "asdf",
        "last_name": "asdf",
        "phone_number": "622111444",
        "age": 38,
        "gender": "M"
 }
}

我的错误:TypeError at /api/user/register post() 缺少 1 个必需的位置参数:'request'

【问题讨论】:

    标签: django rest


    【解决方案1】:

    已修复,问题来自没有解析 json。

    解决方案:

    user_data = JSONParser().parse(request)
    serializer = UserRegistrationSerializer(data=user_data)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-24
      • 2020-05-07
      • 2018-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-12
      相关资源
      最近更新 更多