我有以下模型结构:
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
我在管理员处注册了这两个模型。但是当我尝试在管理员的问题中添加多个选项时,它会列出任何其他答案。
答案 0 :(得分:2)
你的外键是错误的方式。该字段定义的模型是"许多"一对多关系的一面。
对于有多个答案的问题,FK应该依赖于指向问题的答案。
然后您可以使用" inlines"管理员的功能是在与问题相同的页面上定义多个答案。
答案 1 :(得分:0)
您可以在这种情况下使用ManyToManyField
。这允许您同时将多个选项绑定到不同的问题:
choices = models.ManyToManyField(Answer, related_name='choices')