title: How can I get current values for a ManyToManyField in Django Admin?
body: <p>In my Model I have a <code>ManyToManyField</code> over a different Model:</p>
  
  <pre><code>class A(models.Model):
      ...
  
  class B(models.Model):
      field = models.ManyToManyField(A)
  </code></pre>
  
  <p>Assuming I have <code>field</code> poblated with some values, I'm trying to get a list of the items that the user unselected before hitting the <code>Save</code> button. For that, I've overloaded the <code>save()</code> method inside <code>B</code>:</p>
  
  <pre><code>def save(self, *args, **kwargs):
      super(B, self).save(*args, **kwargs)
      print self.field.all()
  </code></pre>
  
  <p>However, when hitting the <code>Save</code> button, the values of <code>self.field.all()</code> I get are the ones that I had when I loaded the form.</p>
  
  <p>For example, if I had two selected items in the list (<code>a</code> and <code>b</code>) and I unselect <code>b</code> and hit the <code>Save</code> button, <code>self.field.all()</code> at <code>save()</code> time is still <code>a</code> and <code>b</code>. If I edit the item again, I see <code>b</code> is unselected, I select it back and at <code>save()</code> time <code>self.field.all()</code> is only <code>a</code>.</p>
  
  <p>My assumption is that unselected items are processed after the <code>save()</code> method, although I haven't found a reference in the Django documentation.</p>
  
  <p>Is there a way to get the updated list at <code>save()</code> time? If not, is there a method I can overload to handle the list update within the Model definition?</p>
  
  <p>(<strong>Note</strong>: Alternatives are also welcome.)</p>