Множественные сериализаторы Django REST не сохраняют и не обновляют новые данные
Я пытаюсь добавить профиль пользователя, чтобы он мог быть обновлен при POST запросе, но он не обновляется и возвращается со старыми данными, а когда у пользователя нет профиля, он ловит ошибку и создает его для него
views.py
@api_view(['POST'])
def user_update(request,pk):
if request.method == "POST":
user = User.objects.get(pk=pk)
try:
user_p = UserProfile.objects.get(user=user)
except:
user_p = UserProfile.objects.create(user=user)
serializer1 = UserSerializer(instance = user , data = request.data)
serializer2 = UserUpdateSerializer(instance = user_p , data = request.data)
if serializer1.is_valid() and serializer2.is_valid():
serializer1.save() #Doesn't Save
serializer2.save() #Deosn't Save
Serializer_list = [serializer1.data, serializer2.data]
return Response(Serializer_list)
serializers.py
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['id', 'username', 'email']
class UserProfileSerializer(serializers.ModelSerializer):
class Meta:
model = UserProfile
fields = '__all__'
models.py
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE,null=True)
image = models.ImageField(upload_to='user',default='default.png')
def save(self, *args, **kwargs):
super(UserProfile, self).save(*args, **kwargs)
img = Image.open(self.image.path)
if img.height > 300 or img.width > 300 :
output_size = (300,300)
img.thumbnail(output_size)
img.save(self.image.path)
Нашел ошибку в моей консоли, которая может помочь
Method Not Allowed: /api/user/update/1
[14/Jun/2022 17:11:14] "GET /api/user/update/1 HTTP/1.1" 405 5631
[14/Jun/2022 17:11:16] "POST /api/user/update/1 HTTP/1.1" 200 5811