I figured out what I was missing. If you want your model to show up in the admin list page you must supply a value for all defined foreign key contraints. Not sure if that's an SQL thing (mysql did not complain about their absence) or a Django thing. Removing "blank=True" from all the foreign keys has essentially solved the problem. Yes, I am a noob.