title: Django Models - Problem using ManyToManyField add() method
body: <p>I have a problem using the add() method below...</p>
  
  <pre><code>class JobRecord(models.Model):
      """JobRecord model"""
  
      project             = models.ForeignKey(Project)
      date                = models.DateField()
      supervisor          = models.ForeignKey(User, related_name='supervisor_set')
  
      operators           = models.ManyToManyField(User, related_name='operators_set', help_text='Include the supervisor as an operator here also.')
  
      vehicles            = models.ManyToManyField(Vehicle, blank=True, null=True)
  
      def __unicode__(self):
          return u"%s - %s" % (self.project.name,  self.date.strftime('%b %d'))
  
      def save(self, **kwargs):
          super(JobRecord, self).save(**kwargs)
          if not self.operators.filter(pk=self.supervisor.pk):
              self.operators.add(self.supervisor)
              print self.operators.values()
  </code></pre>
  
  <p>Strangely, the <code>print self.operators.values()</code> line displays the correct values, however, upon inspection of the record in django admin, the supervisor has not been saved as an operator.</p>
  
  <p>ie.</p>
  
  <pre><code>self.operators.add(self.supervisor) # fails to commit
  </code></pre>
  
  <p>What manner of magic do I need here?</p>