Save 2 related models through a single form
The way you have this implemented, by overriding the save method to save the related models, is correct and is how it should be implemented. Unless you implement this logic outside of the form, in which case you are probably violating some DRY principles, the form is the correct place to manage data for multiple models.