Пытаюсь сохранить dict в моей модели, но получаю ошибку из-за внешнего ключа

я не могу понять, как решить эту проблему. я пытаюсь сохранить dict, но получаю ошибку из-за наличия внешнего ключа в моей модели leave, как я могу решить эту проблему.

views.py

class leaveview(APIView):
    def post(self,request):
        token = request.data['jwt']
        if not token:
            raise AuthenticationFailed('Unauthenticated')
        
        try:
            payload = jwt.decode(token,'secret',algorithms=['HS256'])
        except jwt.ExpiredSignatureError:
            raise AuthenticationFailed('Unauthenticated')
        
        user=User.objects.filter(id=payload['id']).first()
        serializer1=UserSerializers(user).data


        serializer2 = leaveSerializers(data=request.data)
        serializer2.is_valid(raise_exception=True)
        serializer={**serializer1,**request.data}
        
        del serializer["jwt"]
        final_data= leave(**serializer)
        final_data.save()
        return Response(data=serializer)

models.py


class hostel_manager(models.Model):
    hostel = models.CharField(max_length=100,primary_key=True)


class leave(models.Model):
    name=models.CharField(max_length=100,null = True)
    father_name=models.CharField(max_length=100,null=True)
    
    
    branch=models.CharField(max_length=40,null=True)
    coer_id=models.CharField(max_length=12,unique=True,null=True)
    
    hostel_name = models.ForeignKey(hostel_manager,on_delete=models.CASCADE)
    room_no = models.CharField(max_length=10)
    where_to = models.CharField(max_length=100)
    reason = models.CharField(max_length=300)
    start_date = models.CharField(max_length = 100,null=True)
    end_date = models.CharField(max_length=100,null=True)
    phone_regex=RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+9999999999'. Up to 12 digits allowed.")
    phone_number = models.CharField(validators=[phone_regex], max_length=17)

Сообщение об ошибке говорит о том, что вы пытаетесь присвоить hostel_name как строку/поле. В соответствии с вашей моделью, это должен быть объект hostel_manager.

Не уверен, как выглядит ваш POST-сериализатор или полезная нагрузка, но вы, вероятно, захотите установить поле hostel_manager_pk в PK объекта kund kund bhawan.

Вернуться на верх