formsets and inline forms in Django - a similar problem came up at the company recently, so here's a blog post that might be the solution.