【发布时间】:2019-01-09 08:17:35
【问题描述】:
因此,我需要在定义模型之前为模型创建外键。考虑以下模型:
class Question(models.Model):
"""Model for question."""
question_text = models.TextField(blank=True, null=True)
answer = models.ForeignKey(Option, on_delete=models.PROTECT) # Can't do this
class Option(models.Model):
"""Model for options of a question."""
question = models.ForeignKey(Question, on_delete=models.CASCADE)
text = models.CharField(max_length=127)
如您所见,我有一个模型来保存问题(文本及其答案)。此外,我还有另一种模型来保存一个与问题相关联的选项。这样我就可以为问题的选项创建变量编号,其中一个是正确的。但我无法将正确的选项链接到模型 Question,因为需要先声明模型 Question 才能将每个 Option 链接到 Question。
有什么方法可以实现吗?
更新
经过一番思考,我想出了我可以使用的模型结构,我需要一个模型来回答。
class Question(models.Model):
"""Model for question."""
...
class Option(models.Model):
"""Model for options of a question."""
...
class Answer(models.Model):
"""Model for answers."""
question = models.OneToOneField(Question, on_delete=models.CASCADE)
answer = models.ForeignKey(Option, on_delete=models.PROTECT)
但问题仍然是我如何在定义模型之前引用它(如果可能的话)。
【问题讨论】:
-
不错的包,但目的略有不同。
-
这个链接stackoverflow.com/questions/35459326/…是你要找的。span>
标签: python django python-3.x django-models