Cool project! It strikes me that Django might not be the ideal for this project, have you thought about that? This logic [1] looks shoehorned into the framework.
[1] https://github.com/vespene-io/vespene/blob/master/vespene/mo...
[1] https://github.com/vespene-io/vespene/blob/master/vespene/mo...
It seems like you're saying I should have used a many-to-many there rather than 7 FKs. Probably, but shrug... it can be fixed later if it ever becomes a problem.