title: Django update model form with unique constraint
body: <p>What I'm trying to achieve is to update an instance with unique_together constraint via a model form.
  I've a "relationnal" model, e.g. a model with three fields, all as foreign key fields. This model is referenced by an another one through a through attribut.
  A part of my "relationnal" model : </p>
  
  <pre><code>class EnseignantUECentre(models.Model):
      statut = models.ForeignKey(StatutEnseignant, blank=False, null=False)
      enseignantue = models.ForeignKey('EnseignantUE', blank=False, null=False)
      centre = models.ForeignKey('Centre', blank=False, null=False)
  
      class Meta:
          unique_together = ('enseignantue', 'centre')
  </code></pre>
  
  <p>Two of theses fields, <code>enseignantue</code> and <code>centre</code>, are set once and for all.
  Only <code>statut</code> can be updated.</p>
  
  <p>I overloaded a <code>Form._post_clean</code> method to ensure that theses fields are not modified. </p>
  
  <pre><code>def _post_clean(self):
      # si lors d'un update les valeurs centre et enseignantue
      # changent il y a erreur: Voir #272
      super(EnseignantUECentreForm, self)._post_clean()
      import ipdb; ipdb.set_trace()
      if 'centre' in self.changed_data:
          # on ne récupère pas la valeur depuis self.initial
          # mais depuis l'instance
          if self.instance is not None:
              self._update_errors(ValidationError({'centre': ValidationError("Le centre est déjà associé, vous ne pouvez le modifier")}))
      if 'enseignantue' in self.changed_data:
          if self.instance is not None:
              self._update_errors(ValidationError({'enseignantue': ValidationError("L'enseignantue est déjà associé, vous ne pouvez le modifier")}))
  </code></pre>
  
  <p>This code seems to working but while I debug it, I get a supplementary <code>ValidationError</code> filed in the <code>_all_</code> errors dict key.</p>
  
  <p>It says :</p>
  
  <pre><code>ipdb&gt; errors
  {'__all__': [ValidationError([u'Enseignant ue centre with this Enseignantue and Centre already exists.'])]}
  </code></pre>
  
  <p>I'm instanciating my form as :</p>
  
  <pre><code>from ue.baobab.forms import EnseignantUECentreForm
  from ue.baobab.models import EnseignantUECentre
  v = {'centre': 214, 'enseignantue': 1, 'statut': 2}
  instance = EnseignantUECentre.objects.filter(centre=214)[1]
  f = EnseignantUECentreForm(instance=instance, data=v)
  f.is_valid()
  </code></pre>
  
  <p>I understand that cleaning form process <code>BaseModelForm._post_clean</code> calls validation on the model side (validate_unique). But why the "update" process is not working here?
  I'm missing something really obvious here! Is <code>Model.save(force_update=True)</code> could be of some help?</p>
  
  <p>Thx a lot, </p>