def patch(self, request, id, format=None): user = User.objects.get(id=id) serializer = UserSerializer(blog, data=request.data, partial=True) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, format=None): user = request.data if not user: return Response({'response': 'error', 'message': 'No data found'}) serializer = UserSerializer(data=user) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request): # register api request_data = request.data user_serializer = UserSerializer(data=request_data) if user_serializer.is_valid(): # check if request params are valid user = user_serializer.save() # generate user refresh = RefreshToken.for_user( user) # generate token after user generated res = {"token": str(refresh.access_token), "id": user.id} return Response(res, status=status.HTTP_201_CREATED) else: return Response(user_serializer.errors, status=status.HTTP_400_BAD_REQUEST ) # check if request params are invalid
def get_list(request): """查询用户列表 """ details = request.GET.dict() users = UserController().get_list(**details) serializer = UserSerializer(users, many=True) return Response(serializer.data)
def post(self, request, *args, **kwargs): response = super(CustomObtainAuthToken, self).post(request, *args, **kwargs) token = Token.objects.get(key=response.data["token"]) user = User.objects.get(id=token.user_id) serializer = UserSerializer(user, many=False) return Response({"token": token.key, "user": serializer.data})
def get(request, id): """通过 id 查询某个用户 """ user = UserController().get_by_id(id) if user: serializer = UserSerializer(user) return Response(serializer.data) return Response(None, status=status.HTTP_404_NOT_FOUND)
def register(request): """注册新用户 """ details = dict(request.data) user = UserController().create(**details) if user: serializer = UserSerializer(user) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(None, status=status.HTTP_400_BAD_REQUEST)
def update_user(request, user, *args, **kwargs): data = request.data.dict() validated, incorrect_field = validate_unknown_fields( USER_UPDATE_FIELDS + MANDATORY_FIELDS, data) if not validated: return make_exc_response(data, "INVN004", status.HTTP_400_BAD_REQUEST, None, incorrect_field) validated, missing_field = validate_necessary_keys(MANDATORY_FIELDS, data) if not validated: return make_exc_response(data, "INVN005", status.HTTP_400_BAD_REQUEST, None, missing_field) return make_success_response(data, UserSerializer(user.update(**data)).data, status.HTTP_200_OK)
def register_user(request, *args, **kwargs): data = request.data.dict() validated, incorrect_field = validate_unknown_fields(REGISTER_FIELDS, data) if not validated: return make_exc_response(data, "INVN004", status.HTTP_400_BAD_REQUEST, None, incorrect_field) validated, missing_field = validate_necessary_keys(REGISTER_FIELDS, data) if not validated: return make_exc_response(data, "INVN005", status.HTTP_400_BAD_REQUEST, None, missing_field) if User.objects.filter(username=data['username']).exists(): return make_exc_response(data, "INVN006", status.HTTP_306_RESERVED) return make_success_response(data, UserSerializer(User.create(**data)).data, status.HTTP_201_CREATED)
def login(request): """用户登录 登录系统,并获取 token """ username = request.data.get('username') password = request.data.get('password') # 登录 user, token = UserController().login(username, password) if user: serializer = UserSerializer(user) return Response( data={ 'token': token, 'user': serializer.data }, headers={ 'Set-Cookie': 'token={}'.format(token) # 提供 Cookies }) return Response(None, status=status.HTTP_401_UNAUTHORIZED)