title: Django - save() update on duplicate key
body: <p>I have little application which allows a user to rate a video.</p>
  
  <p>The user can rate only once.
  So I have defined the uniqueness on the model.</p>
  
  <p>But he should be able change his rate.
  So the <code>save()</code> should update on duplicate key</p>
  
  <pre><code>class VideoRate(models.Model):
    """Users can Rate each Video on the criterias defined for the topic"""
    user = models.ForeignKey(User)
    video = models.ForeignKey(VideoFile)
    crit = models.ForeignKey(VideoCrit)
    rate = models.DecimalField(max_digits=2, decimal_places=1, choices=RATE_CHOICES)
    class Meta:
      unique_together = (('user', 'video', 'crit'),)
      verbose_name = 'Video Rating'
  </code></pre>
  
  <p>If I</p>
  
  <pre><code>rate = VideoRate(user_id=1, video_id=1, crit_id=1, rate=2)
  rate.save()
  </code></pre>
  
  <p>It's saving the rating, but if I</p>
  
  <pre><code>rate = VideoRate(user_id=1, video_id=1, crit_id=1, rate=3)
  rate.save()
  </code></pre>
  
  <p>I get the normal error</p>
  
  <pre><code>IntegrityError: (1062, "Duplicate entry '1-1-1' for key 'user_id'")
  </code></pre>
  
  <p>Even if I use <code>force_update=True</code> (since based only on primary keys)</p>
  
  <p>Is there a way to update the rating if it already exists without having to check data before ?</p>