У меня есть модель с именем Answer
, которая имеет отношение ForeignKey
к другой модели с именем Question
. Это означает, что на вопрос может быть несколько ответов, естественно.
class Question(models.Model):
kind = models.CharField(max_length=1, choices=_SURVEY_QUESTION_KINDS)
text = models.CharField(max_length=256)
class Answer(models.Model):
user = models.ForeignKey(User, related_name='answerers')
question = models.ForeignKey(Question)
choices = models.ManyToManyField(Choice, null=True, blank=True) # <-- !
text = models.CharField(max_length=_SURVEY_CHARFIELD_SIZE, blank=True)
Теперь я пытаюсь создать экземпляр Answer
, а затем установить отношение M2M на Choice
, но я получаю следующую ошибку, прежде чем даже коснуться M2M: 'Answer' instance needs to have a primary key value before a many-to-many relationship can be used.
ans = Answer(user=self._request.user,
question=self._question[k],
text=v)
ans.save() # [1]
Когда я комментирую [1]
проблема, конечно, исчезает, но я не понимаю, почему она возникает в первую очередь, потому что, как вы можете видеть, я ничего не делаю с 1012 в M2M в все!
РЕДАКТИРОВАТЬ: Кажется, это не проблема с именем choices
. Я пытался изменить его каждый раз на options
с той же проблемой.