A Perth man who assaulted Qantas cabin crew and forced the diversion of an international flight has pleaded guilty to seven charges relating to his drunken behaviour.

Justin Cooke was on board the flight from Sydney to Japan in December last year when he punched the cabin manager in the chest and spat at him, threatened staff and had to be restrained.

The drunken outburst forced the pilot to make an unscheduled landing in Cairns resulting in more than $46,000 in additional costs for the airline.

Mr Cooke today pleaded guilty to charges including smoking in an aeroplane toilet, disorderly conduct and threatening the safety of people on board the flight.

He will be sentenced next month.