Почему он показывает плохой запрос Плохой запрос: /updateuser/id/
Я пытаюсь обновить данные пользователя. У меня есть отдельные модели MyUser и Profile, объединенные отношением Foreign key. Я написал вложенный сериализатор UsersProfileSerializer. Я хочу обновить данные и MyUser и Profile вместе. Когда я нажимаю submit, в сети появляется ошибка bad request error. Возможно, я передаю неправильный формат ответа в соответствии с моим django rest api. Когда я попытался распечатать request.POST, в консоли браузера он выглядит так: (если я хочу изменить адрес)
{ address: Array(1), user: {…}}
address: ['Not a valid string.']
user: {username: Array(1), bio: Array(1)}
[[Prototype]]:Object
Пожалуйста, посмотрите и подскажите мне мою ошибку.Спасибо заранее.
Мои модели:
class MyUser(AbstractUser):
bio = models.CharField(max_length=500, blank=True)
is_younger = models.BooleanField(default=False)
class Profile(models.Model):
genders = [
("M", "Male"),
("F", "Female"),
]
user = models.ForeignKey(MyUser, on_delete=models.CASCADE,related_name="profile")
age = models.CharField(max_length=2,blank=True,null=True)
gender = models.CharField(max_length=1, choices=genders)
contact = models.CharField(max_length=12,blank=True, help_text='Contact phonenumber')
address = models.CharField(max_length=100, blank=True)
Сериализаторами являются:
class ListUsersSerializer(serializers.ModelSerializer):
class Meta:
model = MyUser
fields = ['id', 'username', 'email','bio', 'is_younger']
class UsersProfileSerializer(serializers.ModelSerializer):
user = ListUsersSerializer()
class Meta:
model = Profile
fields = ['id','age','gender','contact','address','user']
def update(self, instance, validated_data):
user_data = validated_data.pop('user')
if user_data is not None:
instance.user.id = user_data['id']
instance.user.username = user_data['username']
instance.user.email = user_data['email']
instance.user.bio = user_data['bio']
instance.user.is_younger = user_data['is_younger']
instance.user.save()
return super().update(instance, validated_data)
Виды:
class UpdateUserView(generics.UpdateAPIView):
permission_classes = [AllowAny]
queryset = Profile.objects.all()
serializer_class = UsersProfileSerializer
Мой код фронтенда (react js) :
Здесь я написал два api fetchUserdata для получения данных пользователя и submitForm для операции патча.