Neither Romola Garai nor Diego Luna had any previous professional dance training. They spent ten weeks in Puerto Rico before production began, training eight hours a day with producer JoAnn Fregalette Jansen and four additional dancers and choreographers
The plot is loosely based on the life story of producer JoAnn Fregalette Jansen, who moved to Cuba with her family in 1958. Thus, the "Based on True Events" title.
Miranda Garrison, the assistant choreographer, and actress of "bungalow bunny" Vivian Pressman for Dirty Dancing (1987), served as the assistant choreographer and a featured dancer in this movie, making her and Patrick Swayze the only performers seen in both movies.
Diego Luna is not a trained dancer, but learned the dances he needed for the movie in about six weeks. He has said that normally, he dances best with a few beers in him.
Natalie Portman was considered for the role of Katey, and Ricky Martin was considered for the role of Javier. They were both the first choices.