I think all this functionality can be moved to the admin ModelForm. in the parent because it is related to validating only whether the parent is valid or not https://github.com/alfredo/make_mozilla/blob/master/make_mozilla/pages/admin.py#L41-L67

Also you will notice that I moved any of the bits that walked the tree to some helper functions, this makes easier to unit test the functionality without having to prepare several fixtures to test the integration.

https://github.com/alfredo/make_mozilla/blob/master/make_mozilla/pages/utils.py