1
我正在研究一个基于Django的测验,它将在Javascript的帮助下呈现。每个测验包含许多问题,基本上有一个问题文本和一些选择(反过来可以是正确的或不正确的 - 理论上可以有多个正确的答案)。Django:从模型创建JSON对象返回模板
我想从模板调用get_all_questions_json到然后接收这样的事情:
{
{
"Question 1":
[
["Answer 1-1", true],
["Answer 1-2", false],
["Answer 1-3", false]
]
},
{
"Question 2":
[
["Answer 1-1", false],
["Answer 1-2", true],
["Answer 1-3", false]
]
},
{
"Question 3":
[
["Answer 1-1", false],
["Answer 1-2", false],
["Answer 1-3", true]
]
}
}
我怎样才能做到这一点?
models.py:
class Quiz(models.Model):
name = models.CharField(max_length=80)
slug = models.SlugField()
# to do feedback texts
class Meta:
verbose_name_plural = "Quizzes"
def save(self, *args, **kwargs):
if not self.id:
# Newly created object, set slug
self.slug = slugify(self.name)
super(Quiz, self).save(*args, **kwargs)
def __str__(self):
return self.name
def get_all_questions(self):
return self.question_set.all()
def get_all_questions_json(self):
#
class Question(models.Model):
quiz = models.ForeignKey(Quiz, on_delete=models.CASCADE)
text = models.CharField(max_length=200)
image = models.ImageField()
def __str__(self):
return self.text
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
text = models.CharField(max_length=80)
iscorrect = models.BooleanField()
def __str__(self):
return self.text
请检查你的模型,测验怎么能有self.question_set虽然问题没有外键测验。 – DhiaTN