I think when I add edit functionality and all that, I'll look at the Django CBVs for one that does most of the work for me.