という別のモデルと関係がある というモデルが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]
と問題は解決しますが、そもそもなぜ問題が発生するのかわかりません。ご覧のとおり、M2M で何もしていないからです。
編集:名前にも問題はないようですchoices
。options
同じ問題で、すべての発生をに変更してみました。