title: Django delete foreign object?
body: <p>If we set up a profile how Django recommends:</p>
  
  <pre><code>class Profile(models.Model):
      user = models.ForeignKey(User, unique=True)
  </code></pre>
  
  <p>Then when you delete the <code>User</code> object from Django admin, it deletes his profile too.This is because the profile has a foreign key to user and it wants to protect referential integrity. However, I want this functionality even if the pointer is going the other way. For example, on my <code>Profile</code> class I have:</p>
  
  <pre><code>shipper = models.ForeignKey(Shipper, unique=True, blank=True, null=True)
  carrier = models.ForeignKey(Carrier, unique=True, blank=True, null=True)
  affiliat = models.ForeignKey(Affiliate, unique=True, blank=True, null=True, verbose_name='Affiliate')
  </code></pre>
  
  <p>And I want it so that if you delete the <code>Profile</code> it'll delete the associated shipper/carrier/affiliate objects (don't ask me why Django made "affiliate" some weird keyword). Because shippers, carriers and affiliates are types of users, and it doesn't make sense for them to exist without the rest of the data (no one would be able to log in as one).</p>
  
  <p>The reason I didn't put the keys on the other objects, is because then Django would have to internally join all those tables every time I wanted to check which type the user was...</p>