Django:OneToOneField-RelatedObjectDoesNotExist

问题描述 投票:1回答:2

我的模型中有以下两个类:

class Answer(models.Model):
    answer = models.CharField(max_length=300)
    question = models.ForeignKey('Question', on_delete=models.CASCADE)

    def __str__(self):
        return "{0}, view: {1}".format(self.answer, self.answer_number)


class Vote(models.Model):
    answer = models.OneToOneField(Answer, related_name="votes", on_delete=models.CASCADE)
    users = models.ManyToManyField(User)

    def __str__(self):
        return str(self.answer.answer)[:30]

在外壳中,我得到第一个答案:

>>> Answer.objects.all()[0]
<Answer: choix 1 , view: 0>

我想获得投票对象:

>>> Answer.objects.all()[0].votes
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\Users\Hippolyte\AppData\Roaming\Python\Python38\site-packages\django\db\models\fields\related_descriptors.py", line 420, in __get__
    raise self.RelatedObjectDoesNotExist(
questions.models.Answer.votes.RelatedObjectDoesNotExist: Answer has no votes.

但是发生错误。

我不明白为什么related_name无法识别。你能帮我吗?

python django one-to-one
2个回答
0
投票

您在这里使用了OneToOneField。因此,这意味着每个Vote指向different


0
投票
通过查询Answer模型而不使用OneToOne关系来检查Vote是否具有[C0
© www.soinside.com 2019 - 2024. All rights reserved.