title: Django ManyToMany model validation
body: <p>I have a model with a ManyToManyField similar to this one (the model Word has a language, too):</p>
  
  <pre><code>class Sentence(models.Model):
      words = models.ManyToManyField(Word)
      language = models.ForeignKey(Language)
      def clean(self):
          for word in self.words.all():
              if word.language_id != self.language_id:
                  raise ValidationError('One of the words has a false language')
  </code></pre>
  
  <p>When trying to add a new sentence (e.g. through django admin) I get <code>'Sentence' instance needs to have a primary key value before a many-to-many relationship can be used</code>. This means I can't access self.words before saving it, but this is exactly what I'm trying to do. Is there any way to work around this so you can validate this model nevertheless? I really want to directly validate the model's fields.</p>
  
  <p>I found many questions concerning this exception, but I couldn't find help for my problem. I would appreciate any suggestions!</p>