python - Django 在模板内进行查询

标签 python django

我遇到以下问题。我需要根据questionitem.question_id获取问题的信息 我有以下文件。

# models.py

class Question(models.Model):
    qtype_id = models.ForeignKey(QuestionType, on_delete=models.CASCADE )
    q_discription = models.CharField(max_length=150)

    def __iter__(self):
        return self.pk

class QuestionItem(models.Model):
    exam_id = models.ForeignKey(Exam, on_delete=models.CASCADE)
    question_id = models.ForeignKey(Question, on_delete=models.CASCADE)
    question_pontuation = models.FloatField(default=0.0)

    def __iter__(self):
        return self.pk


# views.py

def ExamDetail(request, exam_id):
    exam = get_object_or_404(Exam, pk=exam_id)
    questionitems = QuestionItem.objects.filter(exam_id= exam_id).values_list('id', flat=True)
    questions = Question.objects.filter(pk__in=questionitems)
    context = {
        'exam': exam,
        'questions': questions,
        'questionitem': questionitems,
    }
    return render(request, 'evaluation/exam_detail.html' , context)

现在在 exam_detail.html 上我有这样的东西:

{% for questionitem in exam.questionitem_set.all %}
    Question {{questionitem.id}}</a>:  {{question.q_discription}}
{% endfor%}

但没有显示任何内容,我需要在 Questionitem.question_id 中显示问题的描述,并且我无法更改 models.py

最佳答案

可能,您在循环中访问查询集时遇到了问题。将代码更改为:-

{% for questionitem in exam.questionitem_set.all %}
   Question {{questionitem.id}}</a>:  {{questionitem.question_id.q_discription}}
{% endfor%}

q_discription 是 Question 类的一部分,可以使用您在循环中收到的 Questionitem 实例上的 Question_id 来访问该类。

关于python - Django 在模板内进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42736814/

相关文章:

python - django 中带有持续时间字段的聚合

python - 如何检测文件是否已在模型保存功能中更改

python - 使用 INTERSECT 和 UNNEST 的 sqlalchemy

python - 如何让 python 在读写 Unicode 文本文件时更加友好?

python - 用keras进行近似

Django 表单向导 - 每个步骤的自定义表单布局

python - 为什么序列化器中需要 context= {'request' : self. request} ?

django - 在Django中使用try除外进行错误处理

python - 箱线图网格

python - 如何有效使用OpenCorporates Reconciliation API?