We all know the golden rule of query optimisation: make one big query rather than lots of little ones in a loop. However, that's easier said than done when you're dealing with deeply nested data - there's a limit to what you can do with Django's own mechanisms like select_related. Often the only answer is to drop down to raw SQL, and in those cases we'd still like to have access to our models, rather than abandoning ORM entirely. This talk presents unjoinify, a helper module that can reassemble gnarly cross-table SQL resultsets back into template-friendly object trees.
6th–10th June 2011