Плохой запрос 400 при POST-запросе (Django React и axios)
У меня проблема с Bad Reqauest 400
при попытке зарегистрировать нового пользователя в моем приложении. Я использую Django 4 и React 18.
Я настроил CORS-заголовки и добавил localhost:3000. Я также проверил логин и он работает нормально. У меня проблема с регистрацией. Я новичок в React и не уверен, что не так с кодом. Когда я проверяю comsole, я получаю следующую ошибку:
мои файлы django находятся ниже:
serializers.py
class UserRegistrationSerializer(serializers.ModelSerializer):
# Confirm password field in our Registration Request
password2 = serializers.CharField(style={'input_type':'password'})
class Meta:
model = User
fields=['email', 'password', 'password2']
extra_kwargs={
'password':{'write_only':True}
}
# Validating Password and Confirm Password while Registration
def validate(self, attrs):
password = attrs.get('password')
password2 = attrs.get('password2')
if password != password2:
raise serializers.ValidationError("Password and Confirm Password doesn't match")
return attrs
def create(self, validate_data):
return User.objects.create_user(**validate_data)
views.py
def get_tokens_for_user(user):
refresh = RefreshToken.for_user(user)
return {
'refresh': str(refresh),
'access': str(refresh.access_token),
}
class UserRegistrationView(APIView):
renderer_classes = [UserRenderer]
def post(self, request):
serializer = UserRegistrationSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.save()
token = get_tokens_for_user(user)
return Response({'token':token, 'msg':'Registration Successful'}, status=status.HTTP_201_CREATED)
ниже приведены мои файлы реакций:
client.js
config.js
import runtimeEnv from '@mars/heroku-js-runtime-env';
// to read env variables
const env = runtimeEnv();
const config = {
apiBasePath: env.REACT_APP_API_BASE_PATH || "http://localhost:8000",
reactAppMode: process.env.REACT_APP_MODE || 'dev',
};
export default config;
register.jsx
Вам нужны два параметра
register(email, password) {
Но вы передаете 4 аргумента
client.register(addUserForm.email, addUserForm.name, addUserForm.password, addUserForm.password2)