The problem with that approach is that we need the `Webapp` instance's `current_version` in order to instantiate and validate the form for the `AppFeatures` object, but this isn't created until the `Webapp` instance itself is created. That's how I ended up with this particular design pattern and kept the logic out of the form's save method. We could abstract all that out and use transaction management to ensure that the `Webapp` isn't saved unless the `AppFeatures` save happens correctly, but the view then gets messier and still requires direct testing of the view to ensure that if the `AppFeatures` creation fails, the app itself isn't saved.