def post(self, request): serializer = UserSerializer(data=request.data) if serializer.is_valid(): user = User.object.create_user(serializer.data['username'], serializer.data['email'], serializer.data['password']) refresh = RefreshToken.for_user(user=user) return JsonResponse( { 'refresh': str(refresh), 'access': str(refresh.access_token) }, status=201) return JsonResponse(serializer.errors, status=400)
def user_list(request, format=None): if User.userAuth(request, tokkening=True) == False: print u"Access denied" return render_to_response('denied.html', context_instance=RequestContext(request)) if request.method == 'GET': users = User.objects.all() serializer = UserSerializer(users, many=True) return Response(serializer.data) elif request.method == 'POST': serializer = UserSerializer(data=request.data) 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 update(self, instance, validated_data): user_data = validated_data.get('user') user_serializer = UserSerializer( data=user_data, partial=True ) # Parcial=True, para evitarnos la validacion de los campos que son requeridos ya que podriamos solo querer actualizar ciertos campos de la instancia if user_serializer.is_valid(raise_exception=True): user_instance = user_serializer.update( instance=instance.user, validated_data=user_serializer.validated_data) validated_data['user'] = user_instance instance.user = validated_data.get('user', instance.user) instance.gas_company = validated_data.get('gas_company', instance.gas_company) instance.save() return instance
def user_detail(request, pk, format=None): if User.userAuth(request, tokkening=True) == False: print u"Access denied" return Response(status=status.HTTP_403_FORBIDDEN) try: user = User.objects.get(id=pk) except User.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == 'GET': serializer = UserSerializer(user) return Response(serializer.data) elif request.method == 'PUT': serializer = UserSerializer(user, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': user.delete() return Response(status=status.HTTP_204_NO_CONTENT)