I keep getting form.is_valid return false

This process - where you have a select field dependent upon a prior selection - is known as a “chained”, “cascade”, or “dependent” select. There have been a few discussions here about implementing them.

Start with Values from the second field of the form - depending on the selected value of the first field? and read some of the links from there as well. Then if you have any further questions, feel free to come back here and add them.

You haven’t shown your Booking model here, so I can’t say for sure - but if your Booking model has the field defined as a Foreign Key, then yes.