Попытка создать объект в базе данных Django с помощью React, используя User в качестве внешнего ключа (rest-framework)
Я пытаюсь зарегистрировать Club с полями owner (ForeignKey) и name через форму в React. Все работает, пока я не отправлю форму. Это дает мне ошибку 401 Unauthorized:
const onSubmit = (event) => {
event.preventDefault();
if (checkExistingClubNames(clubName, clubs)) {
const owner = isAuthenticated().user;
const name = clubName;
createClub({owner, name})
.then((data) => {
if (data.name === clubName) {
setClubName('');
setNameTaken(false);
navigate('/');
}
})
.catch((error) => console.log(error));
} else {
setNameTaken(true);
}
}
clubName это текстовая переменная из формы ввода (useState, ofc), checkExistingClubNames(clubName, clubs) просто проверяет, существует ли клуб с таким же именем, isAuthenticated().user возвращает текущего залогиненного пользователя, nameTaken просто для отображения некоторого текста, который не имеет значения в данном случае.
Проблема кроется в функции createClub, по крайней мере, я так думаю:
export const createClub = (club) => {
return fetch('http://127.0.0.1:8000/api/clubs/', {
method: "POST",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
},
body: JSON.stringify(club),
})
.then((response) => {
return response.json();
})
.catch((error) => console.log(error));
};
На бэкенде это просто сериализатор:
class ClubSerializer(serializers.ModelSerializer):
class Meta:
model = Club
fields = 'id', 'owner', 'name'
A viewset:
class ClubViewSet(viewsets.ModelViewSet):
queryset = Club.objects.all()
serializer_class = ClubSerializer
Как я уже сказал, он выдает ошибку 401 Unauthorized, я использую практически тот же код для регистрации пользователя, и там все работало. Я понятия не имею, что здесь не так.