title: confused about django foreignkey, manytomanyfield, inlineformset_factories
body: <p>All,</p>
  
  <p>I am missing something fundamental about the underlying model for Django's ForeingKeys vs ManyToManyFields.</p>
  
  <p>Suppose I am building an application about cars.  I might have the following classes:</p>
  
  <pre><code> class Car(models.Model):
     carName = models.CharField()
  
   class Manufacturer(models.Model):
     manufacturerName = models.CharField()
  
   class Wheel(models.Model):
     radius = models.IntegerField()
  </code></pre>
  
  <p>So far so good.  Now there are some relations between these classes.  A car has a manufacturer and has (four) tire(s).  Conceptually, there is a difference though.  The manufacturer is related via "aggregation"; a manufacturer can be associated to multiple cars; deleting a Car instance should not cause that car's manufacturer to be deleted as well.  The wheels are related via "composition"; every four wheels associated with a car are associated with that and only that car; delete the car and the wheels should be deleted as well.</p>
  
  <p>So, intuitively, that means that I ought to do the following:</p>
  
  <pre><code> class Car(models.Model):
     carName = models.CharField()
     manufacturer = models.ManyToManyField("Manufacturer")
     wheels = models.ForeignKey("Wheel")
  </code></pre>
  
  <p>Ultimately, I want to use inlineformset_factories so that users can fill in details about a car, its manufacturer and wheels all at the same time.  Something like this:</p>
  
  <pre><code> class CarForm(ModelForm):
     class Meta:
       model = Car
  
   class ManufacturerForm(ModelForm):
     class Meta:
       model = Manufacturer
  
   class WheelForm(ModelForm):
     class Meta:
       model = Wheel
  
   Manufacturer_formset = inlineformset_factory(Car,Manufacturer,formset=ManufacturerForm)
   Wheel_formset = inlineformset_factory(Car,Wheel,formset=WheelForm)
  </code></pre>
  
  <p>But most of the documentation that I find suggests that the ForiegnKey should go from Wheel to Car.  This seems backwards to me, since the Wheel_formset would then present the user with all of the fields for a Car ("carName") and not a Wheel ("radius").</p>
  
  <p>Just the act of typing this question is making me confused.  Can anybody shed some light on how I can build a form that has all of a car fields, and then all of a manufacturer fields, and then all of a wheel fields.</p>
  
  <p>Thanks</p>