title: Extend Django's ManyToManyField with custom fields
body: <p>I am working on a project that uses multiple ManyToManyFields, however, at this point I realize that I want the ManyToManyField to store some extra values (mostly automatically set), such as a timestamp for when the connection was created. I tried this, and replaced the reference to <code>models.ManyToManyField</code> with my custom <code>ManyToManyField</code></p>
  
  <pre><code>class CustomManyToManyField(models.ManyToManyField):
      date_registered = models.DateTimeField(auto_now=True)
  </code></pre>
  
  <p>And then my models:</p>
  
  <pre><code>class A(models.Model):
      name = models.CharField(max_length=32)
  
  
  class B(models.Model):
      m2m = CustomManyToManyField(A)
      name = models.CharField(max_length=32)
  </code></pre>
  
  <p>However, running <code>python manage.py sql testapp</code> returns the following SQL:</p>
  
  <pre><code>BEGIN;
  CREATE TABLE "testapp_a" (
      "id" integer NOT NULL PRIMARY KEY,
      "name" varchar(32) NOT NULL
  )
  ;
  CREATE TABLE "testapp_b_m2m" (
      "id" integer NOT NULL PRIMARY KEY,
      "b_id" integer NOT NULL,
      "a_id" integer NOT NULL REFERENCES "testapp_a" ("id"),
      UNIQUE ("b_id", "a_id")
  )
  ;
  CREATE TABLE "testapp_b" (
      "id" integer NOT NULL PRIMARY KEY,
      "name" varchar(32) NOT NULL
  )
  ;
  </code></pre>
  
  <p>It doesn't take into account the <code>date_registered</code> field I defined in the extended <code>CustomManyToManyField</code>. Why not?</p>