title: Use custom through model on preexisting many to many relation
body: <p>I'm working on a medium-sized django application where we have the common case of having a contact model and each contact could be part of different groups.
  This is the model approach the app currently has:    </p>
  
  <pre><code>class Contact(models.Model):
      first_name = models.CharField (
          max_length = 100,
          verbose_name = _("First Name"),
      )
      last_name = models.CharField (
          max_length = 100,
          verbose_name = _("Last Name"),
      )
      groups = models.ManyToManyField(
          Group,
          related_name = "contacts",
          verbose_name = _("Groups"),        
      )  
  </code></pre>
  
  <p>Our customer asked us to display, in a particular admin area, when the contact joined each one of its groups.
  So we yet have a database table, automatically created by django, where relations between contacts and groups are stored and we'd just like to add a new column used to store the current datetime when a new record is saved, so we tried this approach:</p>
  
  <pre><code>class ContactGroups(DateModel):
  
      contact = models.ForeignKey("Contact")
      group = models.ForeignKey("Group")
      created = models.DateTimeField(auto_now_add=True)
  
      class Meta:
          db_table = "contact_contact_groups"
  
  class Contact(models.Model):
      first_name = models.CharField (
          max_length = 100,
          verbose_name = _("First Name"),
      )
      last_name = models.CharField (
          max_length = 100,
          verbose_name = _("Last Name"),
      )
      groups = models.ManyToManyField(
          Group,
          related_name = "contacts",
          verbose_name = _("Groups"),
          through=ContactGroups,
      )   
  </code></pre>
  
  <p>Launching a new schemamigration django wants to remove the pre-existing table and creating the new one (the db_table is exactly the same the table had).
  This is the first thing I want to avoid because we still have a lot of data inside the pre-existing table. So, How can i proceed to tell django to just add the new field?</p>
  
  <p>It's not over...We also have a second problem:
  Contacts groups adding/removing are performed in our code in this way:</p>
  
  <pre><code>contact.groups.add(group) - contact.groups.remove(group)
  </code></pre>
  
  <p>When using a custom through model in django we do not have "add" and "remove" methods on the ManytoManyRelatedManager, so we should have to fix huge parts in our code and obviously we would like to avoid this. The new field in fact will not contains any particular value, it just have to store the auto_now_add value.</p>
  
  <p>We didn't find any good solution, we just found a bad headhache :)</p>
  
  <p>Can someone helps us?</p>
  
  <p>Many thanks.</p>