我正在为我的项目创建一个测验应用。每个测验可以有多个问题,每个问题都有多个答案,其中一个是正确的。
问题是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
的东西
答案 0 :(得分:-1)
ForeignKey
是正确的字段类型。 OneToMany
只是一个反向ManyToOne
关系(它是一个外键)。
您可以使用InlineModelAdmin
在同一表单上修改Quiz
及其Question
。
在同一页面上编辑Answer
将涉及嵌套的内联表单集,即AFAIK,而不是Django的一部分。如果您想实现这一目标,您可能会对以下问题感兴趣: