У меня есть модель с ManyToManyField, похожая на эту (модель Word также имеет язык):
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')
При попытке добавить новое предложение (например, через администратора django) я получаю 'Sentence' instance needs to have a primary key value before a many-to-many relationship can be used
. Это означает, что я не могу получить доступ к self.words перед сохранением, но это именно то, что я пытаюсь сделать. Есть ли способ обойти это, чтобы вы все же могли проверить эту модель? Я действительно хочу напрямую проверить поля модели.
Я нашел много вопросов, касающихся этого исключения, но не смог найти помощь по моей проблеме. Буду признателен за любые предложения!