Django: multiple models in one template using forms
"I want to hide some of the fields and do some complex validation."
I start with the built-in admin interface.

Build the ModelForm to show the desired fields.
Extend the Form with the validation rules within the form.  Usually this is a clean method.
Be sure this part works reasonably well.

Once this is done, you can move away from the built-in admin interface.
Then you can fool around with multiple, partially related forms on a single web page.  This is a bunch of template stuff to present all the forms on a single page.
Then you have to write the view function to read and validated the various form things and do the various object saves().
"Is it a design issue if I break down and hand-code everything?"  No, it's just a lot of time for not much benefit.
I'm building a support ticket tracking app and have a few models I'd like to create from one page. Tickets belong to a Customer via a ForeignKey. Notes belong to Tickets via a ForeignKey as well. I'd like to have the option of selecting a Customer (that's a whole separate project) OR creating a new Customer, then creating a Ticket and finally creating a Note assigned to the new ticket.
Since I'm fairly new to Django, I tend to work iteratively, trying out new features each time. I've played with ModelForms but I want to hide some of the fields and do some complex validation. It seems like the level of control I'm looking for either requires formsets or doing everything by hand, complete with a tedious, hand-coded template page, which I'm trying to avoid.
Is there some lovely feature I'm missing? Does someone have a good reference or example for using formsets? I spent a whole weekend on the API docs for them and I'm still clueless. Is it a design issue if I break down and hand-code everything?