首页 > 解决方案 > 使用 API Django Rest Framework 创建用户

问题描述

我将如何使用 api 调用在数据库中创建用户客栈?我使用 Model.serializer,我试图覆盖 save 方法并使用 request.data 创建一个用户,但我似乎无法让它工作。有小费吗?我得到的错误是,当我尝试将用户分配给 request.data 时,它会返回说该值需要是一个用户实例。如何使请求的数据成为用户实例?这是我的代码。

@api_view(['POST'])
def createUser(request):

    serializer = userSerializer(data=request.data)
    print(request.data['username'])

    if serializer.is_valid():
        serializer.save()

        if request.data['password'] == request.data['password2']:
            userModel = UserModel.objects.create(
                user=request.data,
                username=request.data['username'],
                email=request.data['email'],
                firstname=request.data['firstname'],
                lastname=request.data['lastname'],
                password=request.data['password'],
                password2=request.data['password2']
            )
            userModel.save()
            return Response('User was created')
        else:
            return Response('Passwords must match')

标签: pythondjangodjango-rest-framework

解决方案


尝试使用这样的 ModelViewSet

class RegisterUser(ModelViewSet):
  serializer_class = userSerializer()
  query_set = UserModel.objects.all()
  
 def perform_create(self, serializer):
    password = self.request.data['password']
    password2 = self.request.data['password2']
    if (password==password2):
       serializer.save()
       return Response('User was created')
   else:
      return Response('Password did not match')

然后在你的网址中调用它

path("register", views.RegisterUser.as_view()),

推荐阅读