如何在Django admin中显示外键列表?

时间:2016-07-10 11:50:44

标签: python django django-admin

我正在为我的项目创建一个测验应用。每个测验可以有多个问题,每个问题都有多个答案,其中一个是正确的。

问题是Django不允许OneToMany关系,所以我必须在模型中使用ForeignKey

class Language_Quiz(models.Model):
    name = models.CharField(max_length=40)
    language = models.OneToOneField(sfl_models.Language)


class Question(models.Model):
    language_quiz = models.ForeignKey(Language_Quiz)
    text = models.TextField()

class Answer(models.Model):
    question = models.ForeignKey(Question, related_name='answers')
    text = models.TextField()
    correct = models.BooleanField()

我想要做的是 - Django管理员会显示分配给当前测验问题列表,并能够添加或修改它们,以便管理员可以在创建时添加问题的测验即可。

你可以给我一个暗示吗?它应该是admin.py

的东西

1 个答案:

答案 0 :(得分:-1)

ForeignKey是正确的字段类型。 OneToMany只是一个反向ManyToOne关系(它是一个外键)。

您可以使用InlineModelAdmin在同一表单上修改Quiz及其Question

在同一页面上编辑Answer将涉及嵌套的内联表单集,即AFAIK,而不是Django的一部分。如果您想实现这一目标,您可能会对以下问题感兴趣: