title: Django: Associate objects before committing
body: <p>So I'm loading a djang-registration Form, which I'm subclassing like so in order to create two related objects, a GeneralUser, and their Business. The below code fails with the warning:</p>
  
  <blockquote>
    <p>save() prohibited to prevent data loss due to unsaved related object 'owner'.</p>
  </blockquote>
  
  <p>And I have also got warnings in the vein of "NoneType Object has no attribute owner"'NoneType' object has no attribute 'is_active'" when trying to create a Business like so :<code>business = Business(name=self.cleaned_data['business_name'], owner=user)</code></p>
  
  <p>I'm simply looking for a way to not commit to db either the user or the business, unless I'm doing it simultaneously. Please note I do <strong>not</strong> have a view for this form to check all sorts of things as <code>form.isvalid()</code> because django-registration is taking care of all those views.</p>
  
  <pre><code>class GeneralUserForm(UserCreationForm):
      business_name = forms.CharField(required=True)
  
      class Meta:
          model = GeneralUser
          fields = ['username', 'email', 'password1',
                    'password2', 'business_name']
  
      def save(self, commit=True):
          user = super(GeneralUserForm, self).save(commit=False)
          user.set_password(self.cleaned_data["password1"])
          business = Business.objects.create(name=self.cleaned_data['business_name'], owner=user)
  
          if commit:
              user.is_active = True  # TODO: remove before deployment.
              user.save()
              business.save()
              return user
  </code></pre>
  
  <p>How would I go about associating <code>GeneralUser</code> with <code>Business</code>, and only then committing to the DB?</p>