I am trying to update Contact model fields while creating the new fields of UpdateInfo model and add them to the existing model. But I am getting this error contacts.models.Contacts.DoesNotExist: Contacts matching query does not exist. I know the contact object with the id 19 exists because I can see it when I try the get contacts API. I am sending data like this: My models: class Contacts(models.Model): full_name = models.CharField(max_length=100, blank=True) ......... def __str__(self): return self.full_name class Meta: verbose_name_plural = 'Potential Clients' class UpdateInfo(models.Model): contacts = models.ForeignKey(Contacts,on_delete=models.CASCADE, related_name='update_info') updated_at = models.DateTimeField(auto_now=True) modified_by = models.CharField(max_length=100, blank=True) def __str__(self): return f"Last modified by {self.modified_by} at {self.updated_at}" My views: class EditContactView(RetrieveUpdateDestroyAPIView): permission_classes = [IsAuthenticated] queryset = Contacts.objects.all() serializer_class = ContactsUpdateSeializer My serializers: class UpdateInfoSerializer(serializers.ModelSerializer): contacts= serializers.PrimaryKeyRelatedField(read_only=True) class Meta: model = UpdateInfo fields = ['id','contacts','updated_at','modified_by'] class ContactsUpdateSeializer(serializers.ModelSerializer): update_info = UpdateInfoSerializer(many=True) id = serializers.PrimaryKeyRelatedField(read_only=True) class Meta: model = Contacts fields = ['id', 'full_name', 'lead_source', 'email', 'phone', 'contact_owner', 'contact_status', 'company_name', 'job_position', 'tasks', 'notes', 'email_list', 'created_by', 'created_at', 'update_info'] def update(self, instance, validated_data): update_data = validated_data.pop('update_info') id = validated_data.get('id') contacts = Contacts.objects.get(id=id) #contacts.save() #contact_only_update_logic instance.full_name = validated_data.get('full_name') instance.lead_source = validated_data.get('lead_source') instance.email = validated_data.get('email') instance.phone = validated_data.get('phone') instance.contact_owner = validated_data.get('contact_owner') instance.contact_status = validated_data.get('contact_status') instance.company_name = validated_data.get('company_name') instance.job_position = validated_data.get('job_position') instance.tasks = validated_data.get('tasks') instance.notes = validated_data.get('notes') instance.email_list = validated_data.get('email_list') instance.save() #add_update_info_logic for update_data in update_data: abc = UpdateInfo.objects.create(contacts=contacts,**update_data) instance.update_info.add(abc) instance.save() return instance Continue reading...