Python 向Django外键添加多个值
我有以下模型结构:Python 向Django外键添加多个值,python,django,django-models,foreign-keys,django-admin,Python,Django,Django Models,Foreign Keys,Django Admin,我有以下模型结构: class Answer(models.Model): id = models.IntegerField(primary_key=True) answer_text = models.CharField(max_length=150) def __str__(self): return self.answer_text class Question(models.Model): question_text = models.
class Answer(models.Model):
id = models.IntegerField(primary_key=True)
answer_text = models.CharField(max_length=150)
def __str__(self):
return self.answer_text
class Question(models.Model):
question_text = models.CharField(max_length=150)
choices = models.ForeignKey(Answer, on_delete=models.CASCADE,
related_name='choices')
answer = models.OneToOneField(Answer, on_delete=models.CASCADE)
def __str__(self):
return self.question_text
我已经在admin上注册了这两个模型。但是,当我试图在管理中为一个问题添加多个选项时,它会列出任何其他答案
请参阅附带的屏幕截图。我无法为一个问题添加多个选项。当我单击绿色+按钮时,它不会列出所有可能的答案 您的外键转错了方向。定义字段的模型是一对多关系的多方面 对于有多个答案的问题,FK应该以指向问题的答案为基础
然后,您可以使用管理员的内联功能在同一页面上定义多个答案作为问题。您的外键是错误的。定义字段的模型是一对多关系的多方面 对于有多个答案的问题,FK应该以指向问题的答案为基础 然后,您可以使用管理员的内联功能在同一页面上定义多个答案作为问题。您可以在这种情况下使用。这允许您同时将多个选项绑定到不同的问题:
choices = models.ManyToManyField(Answer, related_name='choices')
在这种情况下,您可以使用。这允许您同时将多个选项绑定到不同的问题:
choices = models.ManyToManyField(Answer, related_name='choices')
对不起,我没听清楚。问题是单面的,答案是多面的吗?如果你想要一个问题有多个答案,那么是的。关键是,将ForeignKey字段移动到答案模型。我希望一个问题有多个答案。所以外键总是在很多方面定义的?或者我怎么确定?我不知道你为什么还对此感到困惑。一个FK指向一个项目,所以生活在多个方面。对不起,我没有明白。问题是单面的,答案是多面的吗?如果你想要一个问题有多个答案,那么是的。关键是,将ForeignKey字段移动到答案模型。我希望一个问题有多个答案。所以外键总是在很多方面定义的?或者我怎么确定?我不知道你为什么还对此感到困惑。FK指向单个项目,因此位于多个方面。